Method for controlling plurality of robotic depositors in a non-continuous deposition process

ABSTRACT

In the context of additive manufacturing processes wherein an object is built by layered accumulations of discrete instantaneous deposits of feedstock material at specific locations according to a three-dimensional digital data model, systems and methods are taught for operating multiple independently-moving depositing devices in a shared build space to build the object. In some embodiments, depositing components perform discrete material depositing actions according to sequential lists of deposit location instructions which are dynamically sortable, enabling a control methodology to alleviate collision risks among depositing components and to improve thermal conditions of a workpiece during construction. Further embodiments provide for dynamic apportionment of discrete deposition actions among the available depositing devices for load balancing and fault tolerance.

REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part of U.S. patent application Ser. No. 16/837,696, filed Apr. 1, 2020, which claims priority pursuant to 35 U.S.C. § 119 to U.S. Provisional Patent Application No. 62/827,527, filed Apr. 1, 2019, each of which is hereby incorporated by reference in its entirety.

TECHNICAL FIELD

Embodiments of the technology relate, in general, to systems and methods for fabricating a component via additive manufacturing using a non-continuous deposition process.

BACKGROUND

Additive manufacturing (AM) has made great strides over the past decade as popular AM processes such as Laser Powder Bed Fusion (LPBF), Electron Beam Melting (EBM), and Selective Laser Sintering (SLS) have transitioned away from strictly high-end R&D projects to a much broader range of productionized applications. While advances in the aforementioned technologies are being made on a frequent basis, they also have their limitations. These common processes have limited build volumes and low deposition rates, sometimes resulting in parts that can take weeks and even months to complete. The high cost of equipment and of the fine-grained powders used in these processes is also a limiting factor in their widespread adoption. The high costs involved have typically limited applications to high performance, lightweight aerospace parts that require intensive and time-consuming qualification requirements before a single part can be used for a specific application, further increasing the cost of adoption.

Due to the cost and size limitations inherent in LPBF, EBM, and SLS, a wide range of varying AM modalities based on melting, sintering, or solid-state processing are being developed with the intent to build larger parts at higher deposition rates for a lower cost. Two of the more popular processes currently offered on the market include Directed Energy Deposition (DED) and Wire Arc Additive Manufacturing (WAAM). DED systems are typically expensive and difficult to operate, given that they utilize high-power lasers and complex motion systems such as 5-axis CNC platforms or 6+ axis robotic systems. The material costs associated with DED are also fairly high as the standard feedstock is still a fine powder. Furthermore, 10-50% of all powder used in DED is lost, adding to the cost of each part produced. The WAAM concept was designed to overcome the capital and material costs of DED by utilizing standard arc welding processes such as Gas Metal Arc Welding (GMAW), Gas Tungsten Arc Welding (GTAW), and Plasma Arc Welding (PAW) along with standard weld filler metal in the wire form. Typical WAAM systems are designed around 6-axis welding robots to further reduce costs. Despite the attractive cost and lead time reduction of a robot over a CNC platform for both DED and WAAM, the dynamic accuracy of robotic systems while following a toolpath is limited, increasing the likelihood of manufacturing defects such as lack of fusion. While WAAM successfully combats the capital and material cost issues of DED, it is faced with poorer surface finishes along with higher heat inputs and residual stresses as deposition rates increase.

Even if the cost issue can be eliminated by selecting WAAM over DED, one of the most pressing issues limiting the widespread adoption of all large scale AM processes is that of toolpath generation and motion control. Existing slicing software and toolpath generation methods for large scale AM are focused primarily on either the generation of simplistic shapes, or are developed for very specific geometric applications. A “universal” slicer does not yet exist, and thus programmers and machine operators can thus be forced to spend days or weeks writing code to run large scale AM machines. Once code has been written and is ready for implementation on the factory floor, finding skilled operators familiar with both CNC or robot-based codes and the deposition process can be incredibly difficult, often resulting in higher personnel costs to run machines as engineers are utilized instead of technicians. As additive manufacturing continues to mature, the need for a simple and robust, high throughput, low-cost machine must be met before AM fully revolutionizes manufacturing around the world. As cost is reduced and accessibility is increased, AM will make its way into low-criticality applications with ease, thus increasing the adoption rate of the technology worldwide.

SUMMARY

As explained in various illustrative embodiments set forth in the detailed description below, the present teachings provide for additive manufacturing systems, methods and processes for constructing an object by making a series of discrete material deposits in a discontinuous manner, rather in the continuous manner that is characteristic of bead-forming extrusion and welding processes. In particular, the present teachings address the control of multiple robotic material-depositing subsystems, each subsystem comprising a motion control system acting to move a non-continuous material-depositing device to, and perform discrete deposition of material at, specific locations according to a time-ordered list of deposit location instructions. The control taught herein enables predicting potential collisions when multiple subsystems are operated according to their respective time-ordered lists and resolving such conflicts by selective alterations of the lists' order and contents. Various approaches set forth herein also allow for controlling and adapting to thermal conditions or stresses that an object may experience during construction, the adaptation facilitated by the agility with which the discrete material deposition instructions may be manipulated in the time-ordered lists.

BRIEF DESCRIPTION OF THE DRAWINGS

Various exemplary embodiments are illustrated by way of example, and not by way of limitation, in the following detailed description, claims and accompanying drawings, in which like reference numerals refer to similar elements and in which:

FIG. 1 is a right isometric view depicting a fabrication system, in accordance with one embodiment;

FIG. 2 is a left isometric view depicting the fabrication system of FIG. 1 ;

FIG. 3 is a top plan view of a component layer deposited in accordance with an embodiment;

FIG. 4 is an isometric view of a plurality of fabrication systems in accordance with another embodiment;

FIGS. 5A and 5B are an isometric view and a cross-sectional view of a contact tip in accordance with another embodiment;

FIG. 6 is a isometric view of a rotatable housing including multiple contact tips in accordance with another embodiment;

FIG. 7 depicts an end effector capable associated with more than one wire feeder in accordance with another embodiment;

FIG. 8 is an isometric view of a component layer deposited in accordance with an embodiment;

FIG. 9 is an isometric view of a component layer having deposited cells of varying sizes in accordance with an embodiment;

FIGS. 10A-10G are isometric views of a component layer as it is being deposited in accordance with an embodiment;

FIG. 11 is a front plan view of a blank during post-process machining in accordance with another embodiment;

FIG. 12 depicts a software architecture chart in accordance with another embodiment;

FIG. 13 depicts a software architecture chart in accordance with another embodiment;

FIGS. 14A and 14B depict two example processes for depositing material in a single-mass transfer in accordance with an embodiment;

FIG. 15 depicts a regular pattern of voxel spaces as may be applied in accordance with one or more embodiments;

FIG. 16 depicts a data structure comprising locations for material deposits in accordance with one or more embodiments;

FIG. 17 is a pictorial describing a sequence for depositing material into specific voxel locations in accordance with one or more embodiments;

FIG. 18 is a conceptual diagram outlining stages of processing a data model representing the outer surface of an object to be constructed in accordance with an embodiment;

FIG. 19 depicts the inclusion of specific voxel spaces within an array in fulfillment of a given object layer contour in accordance with one or more embodiments;

FIG. 20 depicts the actions of a material depositing device in alternately moving to, and depositing material at, prescribed deposit locations in accordance with one or more embodiments;

FIG. 21 presents a process for additively fabricating a blank part while monitoring for a need to change delay time between deposits in accordance with one or more embodiments;

FIGS. 22A through 22D are timing diagrams for explaining coordination among depositor movements, depositing actions and the execution of logical processes in accordance with one or more embodiments;

FIGS. 23A through 23C depict various scenarios as to sequences in which vicinal voxel spaces may be filled in accordance with one or more embodiments;

FIG. 24 presents a heat map superimposed on a pattern of voxel spaces which are to be filled with material according to a first sequence of material deposits in accordance with one or more embodiments;

FIG. 25 presents, in contrast to FIG. 24 , an alternative heat map resulting from altering the first sequence to form a second sequence of material deposits in accordance with one or more embodiments;

FIG. 26 is a pictorial depicting a central coordinator communicating with a plurality of material depositing subsystems in accordance with one or more embodiments;

FIG. 27 is a plan view of two robotic arm assemblies depicting their reach into a partially shared build space in accordance with one or more embodiments;

FIG. 28 shows a progression of sequential list data structures as used for detecting possible conflicts among independently movable robotic arms in accordance with one or more embodiments;

FIG. 29 is a logic flow diagram for comparing sequential list data structures as used for detecting possible conflicts among independently movable robotic arms in accordance with one or more embodiments;

FIGS. 30A through 30F are timeline diagrams portraying various scenarios wherein robotic arms make incursions into a region of mutual overlap in accordance with one or more embodiments;

FIG. 31 . is a logic flow diagram depicting the operation of a subroutine that applies a multi-tiered resolution of conflicts detected among sequential lists of deposit timings in accordance with one or more embodiments;

FIG. 32 depicts a process for generating an initial sequential list of deposit locations from an object's layer slice data in accordance with one or more embodiments;

FIG. 33 is a logic flow diagram for partitioning a global sequential list of deposit instructions into a set of coordinated sequential lists for multiple subsystems in accordance with one or more embodiments;

FIG. 34 is a logic flow diagram outlining the interaction between a central coordinator and multiple subsystems in the course of a build process in accordance with one or more embodiments; and

FIGS. 35A and 35B together form a logic flow diagram for a process by which a central coordinator receives and acts upon notifications from subsystems during a build process in accordance with one or more embodiments.

DETAILED DESCRIPTION

Various non-limiting embodiments of the present disclosure will now be described to provide an overall understanding of the principles of the structure, function, and use of the apparatuses, systems, methods, and processes disclosed herein. One or more examples of these non-limiting embodiments are illustrated in the accompanying drawings. Systems and methods specifically described herein and illustrated in the accompanying drawings are by way of example and are non-limiting embodiments. The features illustrated or described in connection with one non-limiting embodiment may be combined with the features of other non-limiting embodiments. Such modifications and variations are intended to be included within the scope of the present disclosure.

Reference throughout the specification to “various embodiments,” “some embodiments,” “one embodiment,” “some example embodiments,” “one example embodiment,” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with any embodiment is included in at least one embodiment. Thus, appearances of the phrases “in various embodiments,” “in some embodiments,” “in one embodiment,” “some example embodiments,” “one example embodiment,” or “in an embodiment” in places throughout the specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined in any suitable manner in one or more embodiments.

Described herein are example embodiments of apparatuses, systems, and methods for making a component via additive manufacturing with non-continuous deposition. The component may be a blank for a part. In one example embodiment, software for toolpath generation takes a 3D model and fills it with a series of layers of hexagonally packed cells that create the complete volume of the given part. The cells are then sorted to build a toolpath consisting of a series of discrete deposition events (i.e., each event corresponds to a single deposited cell). In some embodiments, the cells are sorted to allow for rapid traversals between the discrete deposition events in an order that is designed to maximize deposition rates while residual stress and distortion are minimized by controlling heat input throughout the part. As used herein, references to modeled cell(s) or cell(s) refer to the discrete unit making up the cellular model, which is used to create an order of the discrete deposition events during the non-continuous deposition process, as discussed further below. Each cell is associated with a deposited cell to be deposited during the non-continuous deposition process. As used herein, deposited cell(s) refers to the individual physical depositions that form the blank of a part or the part. As used herein, the term ‘voxel’ may also be used to refer to one of array of elements that conceptually subdivide a three-dimensional space. Each voxel has a unique location and bounds within the three-dimensional space. Thus, even though a voxel is an abstract entity, it may be appropriately said that material is deposited to fill a given ‘voxel space’ meaning at a location within the build space corresponding to a voxel's relative location and bounds as applied to that build space. A voxel space having been filled with material constitutes a deposited cell. Costs are reduced and industrial reliability is maintained by utilizing a variant of the standard GMAW process to build each deposited cell until they are joined together and form the final part. The non-continuous, discrete deposition nature of the process allows for modular scalability of machines without interference in the process or build quality.

In various embodiments, the component formed using a non-continuous deposition process as described herein can be understood to be a “blank” that is further milled or otherwise shaped into a final part. By fabricating the component using the deposited cell-by-deposited cell, layer-by-layer process described herein, the resultant blank can have a configuration that roughly resembles the final part but does not have the associated cost and complexity associated with conventional metal additive manufacturing processes such as, for example, conventional Directed Energy Deposition (DED), Laser Powder Bed Fusion (LPBF), Electron Beam Melting (EBM), and Selective Laser Sintering (SLS). The deposited cell-by-deposited cell, layer-by-layer process can replace rough machining operations carried out on large billets and bar stock that are costly and time consuming. Solely machining a final product from bar stock may be sub-optimal and, likewise, generating a final part using only conventional metal additive manufacturing may also be sub-optimal.

The examples discussed herein are examples only and are provided to assist in the explanation of the apparatuses, devices, systems and methods described herein. None of the features or components shown in the drawings or discussed below should be taken as mandatory for any specific implementation of any of the apparatuses, devices, systems or methods unless specifically designated as mandatory. For ease of reading and clarity, certain components, modules, or methods may be described solely in connection with a specific FIG. Any failure to specifically describe a combination or sub-combination of components should not be understood as an indication that any combination or sub-combination is not possible. Also, for any methods described, regardless of whether the method is described in conjunction with a flow diagram, it should be understood that unless otherwise specified or required by context, any explicit or implicit ordering of steps performed in the execution of a method does not imply that those steps must be performed in the order presented but instead may be performed in a different order or in parallel.

In general, it will be apparent that at least some of the embodiments described herein can be implemented in many different embodiments of software, firmware, and/or hardware. The software and firmware code can be executed by a processor or any other similar computing device. The software code or specialized control hardware that can be used to implement embodiments is not limiting. For example, embodiments described herein can be implemented in computer software using any suitable computer software language type, using, for example, conventional or object-oriented techniques. Such software can be stored on any type of suitable computer-readable medium or media, such as, for example, a magnetic or optical storage medium. The operation and behavior of the embodiments can be described without specific reference to specific software code or specialized hardware components. The absence of such specific references is feasible, because it is clearly understood that skilled persons would be able to design software and control hardware to implement the embodiments based on the present description with no more than reasonable effort and without undue experimentation.

Moreover, the processes described herein can be executed by programmable equipment, such as computers or computer systems and/or processors. Software that can cause programmable equipment to execute processes can be stored in any storage device, such as, for example, a computer system (nonvolatile) memory, an optical disk, magnetic tape, or magnetic disk. Furthermore, at least some of the processes can be programmed when the computer system is manufactured or stored on various types of computer-readable media.

It can also be appreciated that certain portions of the processes described herein can be performed using instructions stored on a computer-readable medium or media that direct a computer system to perform the process steps. A computer-readable medium can include, for example, memory devices such as diskettes, compact discs (CDs), digital versatile discs (DVDs), optical disk drives, or hard disk drives. A computer-readable medium can also include memory storage that is physical, virtual, permanent, temporary, semi-permanent, and/or semi-temporary.

A “computer,” “computer system,” “host,” “server,” or “processor” can be, for example and without limitation, a processor, microcomputer, minicomputer, server, mainframe, laptop, personal data assistant (PDA), wireless e-mail device, cellular phone, pager, processor, fax machine, scanner, or any other programmable device configured to transmit and/or receive data over a network. Computer systems and computer-based devices disclosed herein can include memory for storing certain software modules used in obtaining, processing, and communicating information. It can be appreciated that such memory can be internal or external with respect to operation of the disclosed embodiments. The memory can also include any means for storing software, including a hard disk, an optical disk, floppy disk, ROM (read only memory), RAM (random access memory), PROM (programmable ROM), EEPROM (electrically erasable PROM) and/or other computer-readable media. Non-transitory computer-readable media, as used herein, comprises all computer-readable media except for a transitory, propagating signals.

Embodiments are hereinafter described in detail in connection with the views and examples of FIGS. 1-35 , wherein like numbers indicate the same or corresponding elements throughout the views. A fabrication system 10 is generally depicted in FIGS. 1 and 2 and can facilitate fabrication of a metal component via additive manufacturing, as will be described in further detail below. The fabrication system 10 can include a frame assembly 12 and a deposition system, such as welding system 14. The frame assembly 12 can include a welding table 16, a lower shelf 18 disposed beneath the welding table 16, and a hood 20 disposed above and extending over the welding table 16. In one embodiment, the frame assembly 12 can be formed of steel, but in other embodiments, the frame assembly 12 can be formed of any of a variety of suitable alternative materials, such as other metals, plastics, and/or composites, such as epoxy-granite.

The welding system 14, which can be for example any suitable deposition system, can include a welding machine 22 and a weld gun 24 that is coupled to the welding machine 22 via a cable assembly (not shown). The welding system 14 can include a chiller 25. The welding machine 22 can selectively feed welding wire to the weld gun 24 (via the cable assembly) as part of a welding process, as is commonly understood in the art. It is to be appreciated that the welding machine 22 and the weld gun 24 can be configured to accommodate any of a variety of suitable welding processes, such as, for example, Gas Metal Arc Welding (GMAW), Gas Tungsten Arc Welding (GTAW), and Plasma Arc Welding (PAW). Some processes that are amenable to the present teachings are explained later in connection with FIG. 14 .

The weld gun 24 can be coupled with an articulated robot 26 that is disposed on the frame assembly 12 or welding table 16 beneath the hood 20. In an embodiment, the welding machine is configured to begin feeding the welding wire through the weld gun 24 while the articulated robot 26 is moving. In this manner, the tip of the welding wire may be in the appropriate position to begin arc initiation as the weld gun 24 reaches the next weld location. For example, the initiation time may be from 10 milliseconds to 100 milliseconds and the movement time may be from 50 milliseconds to 900 milliseconds, such that combining the initiation phase with the movement phase may reduce the overall time required for the overall weld. The arc initiation can begin simultaneously or immediately after the articulated robot 26 completes the movement of the weld gun 24. During the welding process, welding gasses emitted from the weld gun 24 can be at least partially collected by the hood 20. In one embodiment, a fume extraction system (not shown) can be associated with the hood 20 and can facilitate extraction of the welding gases from the welding table 16. In another embodiment, welding gases may be recirculated in an enclosed chamber in order to maintain an inert atmosphere.

During the welding process, the articulated robot 26 can facilitate selective positioning of the weld gun 24 relative to the welding table 16. In one embodiment, as illustrated in FIGS. 1 and 2 , the articulated robot 26 can comprise a Selective Compliance Articulated Robot Arm (SCARA) robot that includes a base 28, a first arm 30, and a second arm 32. The base 28 can be coupled with the frame assembly 12 or the welding table 16. The first arm 30 can be pivotally coupled with the base 28 and pivotable with respect to the base 28 about a first axis A1. The second arm 32 can be pivotally coupled with the first arm 30 (at an end opposite the base 28) and pivotable with respect to the first arm 30 about a second axis A2. Each of the first and second arms 30, 32 can accordingly be pivoted about the first and second axes A1, A2, respectively, to move the weld gun 24 laterally along the welding table 16 (e.g., in an X-Y direction). It will be appreciated that the articulated robot can include any suitable components or features to facilitate movement about additional axes such as, for example, by providing a rotating wrist joint (not shown) that can rotate about a Z-axis. The articulated robot 26 may also include a mount (not shown) on the distal end thereof to provide a 5th controlled axis allowing for an azimuth-elevation tool axis control. The weld gun 24 also can be slidably coupled with a distal end 34 of the second arm 32 and slidable along a centerline C1 such that the weld gun 24 is moveable vertically with respect to the welding table (e.g., in a Z direction). The articulated robot 26 can accordingly provide three degrees of freedom for the weld gun 24. In another embodiment, the welding table 16 can include a rotisserie or trunnion (not shown) to facilitate printing on cylindrical components as the cylindrical components are rotated about an axis.

In one embodiment, each of the weld gun 24, the first arm 30, and the second arm 32 can be associated with respective servos (not shown) that can be independently controlled to move the weld gun 24, the first arm 30, and the second arm 32 relative to each other. In other embodiments, any of a variety of suitable alternative electronic actuators can be used to facilitate automated movement of the weld gun 24, the first arm 30, and the second arm 32. It is to be appreciated that although the articulated robot 26 is illustrated and described above to be a SCARA robot, any of a variety of suitable alternative robot arrangements are contemplated for positioning the weld gun 24 relative to the welding table 16 (e.g., a delta robot, 6-axis robot arm, or gantry machine). The time it takes the articulated robot 26 to move the weld gun 24 may vary. In some embodiments, the move time may be in a range of 0.01 s to 100 s, 0.01 s to 50 s, 0.01 s to 10 s, 0.01 s to 1 s, 0.01 s to 0.5 s, 0.1 s to 0.5 s, 0.1 s to 1 s, 0.1 to 10 s, 0.1 s to 100 s, 0.5 s to 1 s, 0.5 s to 10 s, 0.5 s to 100 s, 1 s to 10 s, 1 s to 50 s, or 1 s to 100 s. In an embodiment, the articulated robot 26 may move from 1 m/min to 60 m/min.

Still referring to FIGS. 1 and 2 , the welding system 14 can include a controller 36 that is associated with the welding machine 22, the weld gun 24, and the articulated robot 26. While the controller 36 is shown in connection with the articulated robot 26, the controller 36 may be a separate component (e.g., in an electrical cabinet (not shown)). The controller 36 can facilitate control of the welding process (via the welding machine 22 and/or the weld gun 24) and the operation of the articulated robot 26 to fabricate a three-dimensional component on the welding table 16 via additive manufacturing, as will be described in further detail below. The controller 36 can include native software that can provide instructions to the welding machine 22 and the articulated robot 26 based upon an input from a user (via a control panel or a computer model). In one embodiment, the controller 36 can be a general-purpose computer but, in other embodiments, the controller 36 can be any of a variety of suitable alternative controller arrangements for controlling the welding process and operation of the articulated robot 26.

The welding machine 22 and the controller 36 are shown to be disposed on the lower shelf 18 beneath the welding table 16. A spool or container of welding wire (not shown) can also be provided on the lower shelf 18. By arranging each of these components on the frame assembly 12, the fabrication system 10 can be a self-contained unit that is easily transportable. In one embodiment, the frame assembly 12 can have an overall length and width that is similar to a standard pallet (e.g., about 40 inches by about 48 inches) to enable the fabrication system 10 to be easily transported with pallet moving equipment, such as a pallet jack or a forklift, for example.

Referring now to FIG. 3 , the welding system 14 can fabricate a metal component on a weld plate 38 by depositing a plurality of deposited cells 40 on the weld plate 38. During the welding process, the substrate (e.g., weld plate 38) may be preheated to a desired temperature. In some embodiments, the preheat temperature may be in a range of 0° C. to 1000° C., 0° C. to 750° C., 0° C. to 500° C., 0° C. to 250° C., 10° C. to 1000° C., 10° C. to 500° C., 20° C. to 1000° C., 20° C. to 500° C., 50° C. to 1000° C., or 50° C. to 500° C. Each consecutive deposited cell 40 that is deposited on the weld plate 38 can be spaced from the deposited cell 40 that was previously deposited. For example, the deposited cells 40 can be deposited in a non-continuous manner (i.e., where a continuous manner of deposition would be placing the next deposited cell 40 directly adjacent the previous deposited cell 40). Deposited cells rapidly placed in close proximity can result in a propensity to agglomerate and become asymmetric. By depositing the deposited cells 40 in a non-continuous manner, each particular deposited cell 40 can be allowed to properly cool before another deposited cell 40 is deposited thereon. The approach can enhance the bonding between the deposited cells 40 and distribute the heat input across the metal component to reduce the likelihood for imperfections in the metal component.

The welding parameters may vary. In some embodiments, the voltage applied may be in a range of 10 V to 40 V, 10 V to 30 V, 10 V to 20 V, 15 V to 25 V, 15 V to 35 V, 20 V to 30 V, 20 V to 40 V, or 30 V to 40 V. Various embodiments can include an applied current of 10 A to 1000 A, 10 A to 500 A, 10 A to 250 A, 10 A to 100 A, 100 A to 250 A, 100 A to 400 A, 100 A to 500 A, 100 A to 750 A, 250 A to 500 A, 250 A to 750 A, 500 A to 750 A, or 500 A to 1000 A. The duty cycle may be in a range of 0% to 100%, 25% to 100%, 25% to 90%, 25% to 75%, 40% to 100%, 40% to 90%, or 40% to 75%. The length of the unmelted wire extending from the weld gun (wire stick out) and wire feed rate may vary. In some embodiments, the wire stick out may be in a range of 1 mm to 50 mm, 1 mm to 40 mm, 1 mm to 30 mm, 1 mm to 20 mm, 5 mm to 50 mm, 5 mm to 35 mm, 10 mm to 50 mm, 10 mm to 40 mm, 10 mm to 30 mm, 10 mm to 25 mm, 12 mm to 25 mm, 15 mm to 25 mm, 15 mm to 35 mm, 20 mm to 40 mm, or 20 mm to 30 mm. In various embodiment, the wire feed rate (inches per minute) may be in a range of 10 to 1500, 10 to 1250, 10 to 1000, 10 to 500, 50 to 1500, 50 to 1000, 50 to 500, 100 to 1500, 100 to 1250, 100 to 750, 100 to 500, 100 to 250, 250 to 1250, 250 to 1000, 250 to 500, 500 to 1500, 500 to 1000, 750 to 1500, 1000 to 1500. Additionally, the arc-on time may vary and, in some embodiments, can be in a range of 0.01 s to 100 s, 0.01 s to 50 s, 0.01 s to 10 s, 0.01 s to 1 s, 0.1 s to 100 s, 0.1 s to 50 s, 0.1 s to 10 s, 0.1 s to 1 s, 0.2 s to 100 s, 0.2 s to 50 s, 0.2 s to 10 s, 0.2 s to 1 s, 0.5 s to 50 s, 0.5 s to 10 s, 1 s to 100 s, 1 s to 10 s, 5 s to 100 s, or 10 s to 100 s. Further, the build rate may be in a range from, for example, 0.1 lb/hr to 1000 lb/hr, 0.1 lb/hr to 500 lb/hr, 0.1 lb/hr to 100 lb/hr, 0.1 lb/hr to 50 lb/hr, 0.1 lb/hr to 10 lb/hr, 0.5 lb/hr to 10 lb/hr, 0.5 lb/hr to 50 lb/hr, 0.5 lb/hr to 100 lb/hr, 1 lb/hr to 10 lb/hr, or 1 lb/hr to 50 lb/hr. Distortion in the deposited component may be affected by amperage, duty cycle required to hit each deposition rate. Distortion may be reduced or minimized using the non-continuation deposition process, as discussed below in Example 4. Large wire diameters (e.g., 0.045-0.062″) with high amperage and duty cycles (e.g., move speeds in excess of 20-30 m/min) may be capable of achieving high deposition rates while minimizing distortion. Machine X-Y area may not have a large impact on deposition rates compared to travel speeds, but it may affect heated bed requirements and inert gas consumption. Larger machine areas may require higher duty cycles in order to achieve higher deposition rates.

In various embodiments, the welding system 14 can provide an inert shielding gas during the fabrication of the metal component. The inert shielding gas prevents oxidation of the molten metal, which could otherwise create voids, defects, or discontinuities in the final product. Examples of the inert shielding gas include, without limitation, argon, carbon dioxide (CO²), helium, nitrogen, oxygen, and combinations thereof. The welding system 14 can include an inert shielding gas source (e.g., a gas tank) or may be coupled to a central supply if one is available. Multiple techniques may be used to deliver the inert shielding gas, as discussed below, and more than one technique may be used at a time. An example embodiment includes delivery of the inert shielding gas via a GMAW nozzle. The GMAW nozzle produces a laminar flow of inert shielding gas directly above each deposited cell 40 as it is welded. The deposited cell 40 is still red hot as the gas delivery nozzle moves away towards the next deposited cell 40 to be welded, which may still allow oxidation. The deposition method may vary. For example, the GMAW process has multiple modes: short circuit, globular, spray, or pulsed. The short circuit mode results in a low heat input, which could result in faster depositions. The globular mode results in large amounts of spatter. The spray mode has a high heat input, which may eliminate lack of fusion but can result in overheating the component, which may be addressed by techniques discussed further below. In an embodiment, a combination of these modes may be used to build one component depending on the component geometry and requirements.

In another embodiment, the welding system 14 can include delivery of the inert shielding gas via a gas diffusing lens. The gas diffusing lens creates a relatively large area of slow-moving inert shielding gas that displaces oxygen around a portion of the metal component. The diameter of the gas diffusing lens may vary based on, for example, the overall size of the metal component, the average robot move time between deposited cells 40, the raw material used, and the overall temperature of the metal component.

In another embodiment, the fabrication system 10 can include welding the metal component in a bath of the inert shielding gas. The fabrication system 10 can include a chamber having a bottom surface and a sidewall extending up from the bottom surface. In an embodiment, the bottom surface of the chamber may be the welding table 16. The chamber includes an inlet in either the bottom surface or at about the bottom of the sidewall. The inert shielding gas may be delivered to the bottom of the chamber through the inlet. The inert shielding gas, which is heavier than air, displaces the air previously at the bottom of the chamber. As the chamber fills with the inert shielding gas, the air is pushed up and over the sidewall. After the air has been expelled from the chamber, the welding may proceed. In an embodiment, the bath of the inert shielding gas may be used in conjunction with a GMAW nozzle or a gas diffusing lens as described above.

In another embodiment, the fabrication system 10 can include an enclosed inert environment surrounding the metal component as it is being welded. The fabrication system 10 can include a chamber having a bottom surface, a top surface, and a sidewall extending between the bottom surface and the top surface. The interior of the chamber may be filled with the inert shielding gas and pressurized above the ambient barometric pressure. The positive pressure differential with respect to the ambient environment prevents oxygen-rich air from interfering with the welding.

FIG. 4 illustrates an alternative embodiment that includes a plurality of fabrication systems 110 that are each respectively similar to, or the same in many respects as, the fabrication system 10 illustrated in FIGS. 1 and 2 . For example, each of the fabrication systems 110 include a frame assembly 112 and a welding system (not shown). However, the frame assemblies 112 can have an overall hexagonal shape that provides for modularity among the fabrication systems 110. As such, two or more of the fabrication systems 110 can fit together in a honeycomb-type arrangement and can cooperate together to fabricate a metal component that is otherwise too large to fabricate using only one of the fabrication systems 110. A hexagonal machine shape allows for a variety of configurations of multiple fabrication systems 110 working in conjunction with one another to linearly scale build area and deposition rate. A scaffolding or support structure (not shown) may be positioned above the modular frame assemblies 112 to provide support for the welding system. The modular fabrication systems 110 may include synchronized or unsynchronized Z-motion.

The weld gun 26 may include an end effector designed for the discontinuous deposition architecture as described herein. Traditional welding torches are often too heavy (e.g., in excess of 3 kg) to allow rapid acceleration required for high travel speed of process and do not allow for a simple automated contact tip change during processing. The end effector 42 shown in FIGS. 5A and 5B is designed to weigh less than 1 kg, and can be grabbed with a quick-release collet mechanism for rapid contact tip changes. The welding system may include a carousel of replacement contact tips (not shown) ready to be swapped out as needed. Damage in the event of a machine crash can be mitigated by a notched section located immediately above the contact tip threads. In the event that component temperatures increase the ambient temperature inside the machine significantly, the welding system can include a water-cooled heat exchanger mounted to the exterior of the collet body.

Referring to FIG. 6 , an example embodiment of a contact tip exchanger 44 includes a rotating housing 46 holding more than one contact tip 48. In an embodiment, the rotating housing 46 may hold seven contact tips 48. The rotating housing 46 will rotate, or index, to a new contact tip 48 at predetermined intervals. In various embodiments, the predetermined intervals may be based on, for example, the number of deposited cells produced by each tip or a measure of remaining useful life determined elsewhere in the machine. The contact tip exchanger can include a shearing mechanism (not shown) to trim the welding wire as the rotating housing rotates. Accordingly, the trimmed wire remaining in the current contact tip rotates away from the welding wire extending from the welding wire source (e.g., spool or container). The free end of the welding wire is then fed through the new contact tip after the rotating housing has finished rotating. The contact tip exchanger 44 increases the run time of the welding machine 22 without intervention.

In an embodiment, the welding machine 22 may include a multi-tip end effector. In an embodiment, the end effector may include three tips. The triple-tip end effector can include three welding contact tips positioned along the perimeter of a circle, spaced at 120 degrees apart such that each contact tip is able to produce a deposited cell within the sorting pattern at the same time within one robot movement. In another embodiment, the multi-tip end effector could be used in a multi-material configuration in which each contact tip on the end effector could hold a welding wire of a different material.

In some embodiments, multi-material components can be produced by integrating multiple wires into a single system. For example, the welding system 14 may include a single end effector capable of producing deposited cells from welding wire extending from more than one wire feeder. Referring to FIG. 7 , in an embodiment including three separate material sources 50 a, 50 b, 50 c, three feeders 52 a, 52 b, 52 c may be used. The welding wire extending from each feeder 52 a, 52 b, 52 c extends into a guide 54. The guide 54 may be, for example, shaped like a funnel and may be metallic. The first welding wire to be used is fed through the neck 56 of the guide 54 and out of the end effector. To change materials, the first welding wire is retracted from the neck 56 of the guide 54, and the welding wire of the desired material is fed through the neck 56 and out of the end effector.

The deposited cells 40 deposited on the weld plate 38 can be provided in the pattern illustrated in FIG. 3 using non-continuous deposition. To achieve this pattern, a first layer of deposited cells 40 can first be disposed on the weld plate in a matrix-type arrangement where each deposited cell 40 is spaced substantially equidistant from adjacent deposited cells 40. Each subsequent layer of deposited cells 40 that is added can be deposited in a similar manner relative to the underlying layer until the metal component is formed. In an embodiment, the matrix-type arrangement of each layer is a hexagonal grid. In another embodiment, as shown in FIG. 8 , a layer can have deposited cells 40 that are not arranged in a matrix or grid. Such a layer may be used, for example, where thin walls or portions of a component exist. In another embodiment, as shown in FIG. 9 , the deposited cells 40 could be arranged with some flexibility in the overlap of adjacent deposited cells 40, or the diameter of the deposited cells 40 to more closely match the net shape of the component 58 or help optimize some aspect of component formation. In one embodiment, a portion of the welding table 16 disposed beneath the weld plate 38 can be selectively retracted towards the lower shelf 18 to accommodate larger metal components. Further, the welding table 16 or the articulated robot 26 may be configured to move down or up, respectively, to allow more room for the welding process after each layer is completed.

FIGS. 10A-10G show an example deposition process for a layer of a component. The hollow cylinder 60 represents the component to be built. FIG. 10A shows a first deposited cell 40 a. In FIG. 10B, a second deposited cell 40 b and third deposited cell 40 c have been deposited in a non-continuous manner. Each of deposited cells 40 a,b,c are spaced apart from each other. FIG. 10C shows additional deposited cells 40 deposited, where each deposited cell 40 remains separate from the other deposited cells 40. As more deposited cells 40 are deposited, the deposited cells 40 become interconnected in a hexagonal array. At first, the array may be of ‘hollow’ hexagons (e.g., parts of FIGS. 10C and 10D). As the deposition continues, the centers of the ‘hollow’ hexagons are filled (FIGS. 10D-10G). FIG. 10G shows a completed first layer of deposited cells 40. As can be seen, some deposited cells 40 extend beyond the boundary of the modeled hollow cylinder. To complete the component, additional layers would be deposited on the first layer. In an embodiment where the component is a blank for a part, the component can be post-processed to remove the excess material and reveal the shape of the part (e.g., hollow cylinder 60).

The shape and dimensions of each deposited cell 40 may vary. In an embodiment, the shape of the deposited cells 40 may be generally shaped like a cylinder, clipped sphere, hemisphere, or any other suitable shape. In various embodiments, the average diameter of each deposited cell may be in a range of 0.1 mm to 50 mm, 1 mm to 45 mm, 1 mm to 30 mm, 1 mm to 20 mm, 4 mm to 16 mm, 5 mm to 20 mm, 10 mm to 30 mm, 10 mm to 40 mm, 10 mm to 50 mm, 20 mm to 50 mm, 30 mm to 50 mm, or 40 mm to 50 mm. In some embodiments, the average height of each deposited cell may be in a range of 0.1 mm to 25 mm, 0.1 mm to 20 mm, 0.1 mm to 10 mm, 0.1 to 5 mm, 0.5 mm to 5 mm, 0.5 mm to 10 mm, 0.5 mm to 20 mm, 1 mm to 4 mm, 1 mm to 5 mm, 1 mm to 10 mm, 1 mm to 20 mm, 5 mm to 10 mm, 5 mm to 20 mm, 5 mm to 25 mm, 10 mm to 20 mm, or 10 mm to 25 mm. In various embodiments, the diameter to height aspect ratio may vary and may be, for example, at least 1, at least 1.5, at least 2, at least 2.5, at least 3, and at least 5. These shapes and ranges may also apply to the cells in the cellular model.

In an embodiment, the deposited cells 40 may overlap adjacent deposited cells 40. The overlap of a single deposited cell 40 may be based on the percentage of volume that overlaps with any adjacent deposited cell 40. The overlap may be in a range of 0% to 50%, 0% to 40%, 0% to 30%, 10% to 50%, 10% to 40%, 10% to 30%, 20% to 50%, 20% to 40%, or 30% to 50%. In an embodiment, the overlap can be 20%. In some embodiments, there may be a tolerance of +/−10% of the overlap for the deposited cells 40. In another embodiment, the overlap between the deposited cells 40 is based upon the distance by which adjacent deposited cells 40 overlap. This overlap may be in the range of 0% to 50%, 0% to 40%, 0% to 30%, 10% to 50%, 10% to 40%, 10% to 30%, 20% to 50%, 20% to 40%, or 30% to 50% of the radius of the deposited cell 40. In some embodiments, there may be a tolerance of +/−10% for the relative distance of the overlap to the deposited cell radius. These ranges and tolerance may also apply to the cells in the cellular model. It will be appreciated that any suitable overlap is contemplated that reduces cavities in the finished component or otherwise improves the consistency or integrity of the component.

In an embodiment, the size of each deposited cell 40 may be the same. In another embodiment, the deposited cells 40 may have variable sizes. For example, deposited cells 40 at the edge of a layer may be smaller in size than those not adjacent to the edge. FIG. 9 shows an example layer of deposited cells 40 including multiple deposited cell sizes and a non-uniform pattern. In the embodiment shown in FIG. 9 , the varying sizes and pattern of the deposited cells 40 is based on circle packing techniques and may vary to optimize the amount of material used, surface finish, deposition rate, or a combination thereof. Cell size and shape may vary cell-to-cell, by layer, by position relative to an axis or center point, or for any other suitable reason.

The edges of each layer may include an overhang or a portion of one or more deposited cells 40 that is unsupported by the layer directly below. An overhang degree may be measured between a line or vector normal direction of the substrate or a lower layer of the component and a vector tangent to the lower leading edge of the overhanging portion of the cell. The overhang degree may be in a range of, for example, 0° to 90°, 0° to 75°, 0° to 60°, 0° to 45°, or 0° to 30°.

Suitable metals include, without limitation, iron, nickel, titanium, copper, aluminum, steel, and alloys, such as stainless steel, austenitic, ferritic, martensitic, precipitation hardening alloys, iron alloys, nickel alloys (e.g., Inconel®), aluminum alloys, copper alloys, and titanium alloys. In one embodiment, each of the deposited cells 40 can be formed of the same material (e.g., welding wire), such that the component is a homogeneous component. In another embodiment, certain of the deposited cells 40 can be formed of a different material such that the metal component can be heterogeneous (e.g., an aluminum component having a portion of steel embedded therein). It is to be appreciated that each particular layer of deposited cells 40 deposited on the weld plate 38 does not need to be completed before depositing additional deposited cells 40 over that layer. The embodiments described herein are not limited to metal components, as discussed further below. Homogenous components can include a center portion having one composition with an outer coating having a different composition, pockets of the component having different compositions, layers of the component having different compositions, or the like.

Machining a blank formed in accordance with methods described herein can allow for less material that needs to be removed during the milling process, which can lead to significant time and cost savings during manufacturing, while also reducing complexity of the overall additive manufacturing system. As shown in FIG. 11 , a blank 70 is shown as built using a non-continuous deposition process as described herein. The blank 70 is shown with portion 72 that has been machined to reveal the shape of the final part. Providing blanks in accordance with embodiments described herein can approximate the shape of a finished part, such that less machining in required, while eliminating or reducing the need for highly granular and complex additive manufacturing systems. In an embodiment, less than 30% of the volume of the blank is removed during machining. In other embodiments, the volume of the blank removed during machining can be in a range of 5% to 40%, 5% to 30%, 5% to 20%, 10% to 40%, 10% to 30%, 15% to 40%, 15% to 30%, or 20% to 40%. In accordance with embodiments described herein, considerable savings can be made even with fairly small components and inexpensive materials. The cost savings grow exponentially with respect to starting billet volume. In addition, using a deposited cell-by-deposited cell, layer-by-layer process can allow for a robot arm having three or four degrees of freedom to be used instead of more complicated and expensive six-degree and seven-degree of freedom robots typically used in conventional metal additive manufacturing processes. An advantageous manner for providing an ‘as-deposited’ model of the blank to a subsequent process that calculates machining tool paths is presented in FIG. 35 .

One example of a method for manufacturing a component will now be discussed. First, a computer model of a final part is provided to the controller 36, which identifies the overall shape and size of the metal component that should be fabricated to ensure the final part can be milled or otherwise processed therefrom. The controller 36 can then calculate the optimal deposition order and pattern of the deposited cells 40 to be deposited on the weld plate 38 (e.g., based on heuristics or other conditions such as those discussed further below). The weld plate 38 can be oriented on the welding table 16 and locked in place (e.g., with clamps). The controller 36 can establish a datum (e.g., reference frame) on the substrate 38 which can be a corner or other physical feature. The controller 36 can then operate the welding machine 22 and the articulated robot 26 to begin depositing deposited cells 40 on the weld plate 38 using the datum as a reference frame. During deposition of the deposited cells 40, the controller 36 can monitor various operating characteristics of the welding system 14, such as the voltage and current input at the weld gun 24, for abnormalities that may be indicative of an imperfection in the metal component. If an abnormality is detected, the location of the abnormality (e.g., the deposited cell location) in the component can be flagged for further investigation by the user. Once fabrication of the component is complete, the weld plate 38 can be removed from the welding table 16 and the component can be subsequently milled or otherwise finalized. For example, the post-process machining of a blank may be handled by a CNC milling or turning machine. The datum identified by the controller 36 can be used during the milling process to identify the metal component on the weld plate 38 more easily than with conventional datums (i.e., datums that are integrated into the component itself) which can save significant time and cost. It will be appreciated, however, that systems described herein can be used to manufacture completed parts. For example, components not requiring tight tolerances or a highly specific configuration can be made using embodiments described herein without post-processing or machining. In one embodiment, portions of a component may be machined while other portions of the component may not be finished or otherwise altered.

In various embodiments, multiple components may be constructed in the same deposition process. For example, more than one component may be built in parallel or series, and each component may be built with reference to a single datum. In an embodiment, more than one of the same can be built in parallel or series. In another embodiment, more than one component of different types can be built in parallel or series. As discussed above, each component can be built from a datum or chosen reference point. The build order can then be sorted out to be parallel or series production, after which the cell arrays are sorted. More than one articulated robot 26 may be used.

An example embodiment of software used in the additive manufacturing processes described above includes manipulation of a computer model of the component to be built. A boundary representations (b-rep) model is brought into a build preparation software. The software can then assist the user to quickly orient that model in the machine and plan how the component will be created. The user then chooses a predefined parameter set for the build. The parameters that may be defined include, but are not limited to, layer height, cell height, cell diameter or width, cell aspect ratio, arc on time, wire feed speed, stick out distance, voltage, maximum interpass temperature, overlap distance, overlap percent, deposition time, retraction distance, X-Y-Z positions, i-j-k tool axis vector components and supply or machine characteristics such as program number (a power supply dependent value), arc control (power supply dependent value), work offset (reference frame for the robot), etc. To create the discrete depositions from the component or part model, the software first builds a series of planes separated by the layer height given in the parameter set, and then finds the intersections of each of these planes with the part model. Each of these layers is then covered with an array of cells, such as those described above. In an embodiment, the array is a rectangular array of hexagonally spaced cylindrical cells. Each cell is then checked to determine whether or not to include it in the model. In an embodiment, the program determines what cells are entirely contained within the boundary of the layer. Cells that are contained entirely by the layer contours are included in the model. Next, for any cells not contained entirely by the contours of the layers, the program can determine whether the boundary of the cell intersects the boundary of the layer. The cells having boundaries that don't intersect the layer boundary are not included in the model. For the remaining intersecting cells, the program can determine whether the surrounding cells already cover all of the area of the layer boundary. If a cell is needed to completely cover the area of the layer boundary, that cell is included in the model otherwise it is not included. This process occurs for each layer. (These aspects will be further described in conjunction with FIG. 19 and FIG. 30 below.)

In one alternative embodiment, the discrete depositions are populated through a 2D packing algorithm, rather than being created with an underlying grid. After establishing the intersection curve for each layer, the curves are then filled with uniform sized cells (e.g., cylindrically shaped). The cells may have a defined overlap and an optional programmable tolerance (e.g., +/−10%). Alternatively, in another embodiment, the boundary is filled with circles having a varying diameter with a defined overlap. In another embodiment, the diameter and/or the overlap may vary according to a determined relationship.

In another embodiment, the software does not divide the model into a series of planes, and instead the user selects a starting surface and the contours of the model are filled using a 3D cell packing algorithm. This algorithm can start by building up cells with tool axes built according to the given surface or surfaces. Then additional layers would be created based upon the previous deposition surface or surfaces. This process can repeat until the volume was filled and could be iterated on to optimize packing according to a given metric such as minimizing wasted volume, minimized deviation in overlaps, etc.

The cells can then be rendered, and the user can then preview the initial model superimposed with the planned discrete deposited cells. If the user desires more stock added they can then add an extra padding layer of depositions around the edges, and the model rendered again. Next, the depositions are then sorted as discussed above and passed along to the machine. The user can then choose to export the cellular model (e.g., as a mesh or NURB model) to the CAD or CAM package of their choice for post-process machining and create a build file for the machine. Examples of the software and techniques utilized by the controller 36 are discussed further below.

The process for creating the cell-based architecture can happen very quickly. First, the math for adding offsets or adjusting overhangs is simplified from complicated geometry used in traditional additive or CAD/CAM systems (e.g., where the boundary curves or the actual model geometry needs to be offset and modified and all of the edge cases need to be addressed) to modifying 1D or 2D bitmasks based on whether or not a cell is within the boundary of a layer, as discussed above. This significant simplification of the planning speeds up the processing dramatically. Next, because each cell can essentially be treated as its own unit, the system can include complete traceability from start-to-finish of each cell within the model. In addition to traceability throughout the build, it also allows for the cells to be the finite elements in the analyses to allow for easier prediction of the results and close the control loop to get the component built correctly the first time. Finally, this simplified model can be passed directly to a CAD or CAM package for post-process machining in any software of choice. This is a simpler, streamlined system that not only removes significant complexity from the conventional process but also enables the user to make better components with less effort. In an embodiment, the system includes machine learning in conjunction with a data acquisition (DAQ) system to improve the processing, such as where data regarding minimizing voids can be used to optimize cell deposition.

FIGS. 12 and 13 depict example embodiments of the high-level software architecture that can be used. The user interface 70 may be in an existing system (e.g., an existing CAD or CAM platform, such as Rhinoceros®) and allows the user to pick a parameter set from a predetermined list. In one embodiment, these parameters can be stored in an INI or csv file. The software may be configured for creating, testing, and managing parameter sets. The software can also be configured for version control. In an embodiment, the user may be able to select a bottom face allowing the component to be set up with respect to a known machine datum automatically. The software can check the extents and provide feedback to the user about the current orientation.

The slicer 72 receives the incoming geometry and the given layer height and builds an array of planes through the object layer height away from each other in the Z-direction. It then intersects the model with the planes and creates a series of layers or ‘model layer slices.’ Each layer is a group of curves or ‘contours’ on the same plane where the model intersects the plane. These layer curves are passed both to the cell generator 74 as well as the masker object upstream. Once the layer curves are generated, then each layer is passed to the cell generator 74 where a bounding box is generated for the layer and a cell field is generated over the bounding box, and it is extended several multiples of the cell diameter over each edge. The field is represented as, for example, a 1D bitmask array with stored dimensions or as a 2D bitmask in so-called ‘raster’ arrangement. (A one-dimensional listing of records, each comprising two-dimensional coordinates, is shown in FIG. 16 .)

The masker 76 takes the layer curves as well as the bitmask array and creates an equal length 1D bitmask. It then populates the bitmask based on what cells will be used to form the layer, as discussed above, to create the final bit mask array. In an embodiment, the software then checks for intersection to keep cells if the intersecting length is above a predetermined threshold. The user could guide this setup through the GUI. It can also create a bit mask for rendering where the interior volume is removed for a lightweight version. In an embodiment, the cell fields are created as a grid along the X- and Y-axes. The software can be configured to allow the user to manually shift the edges for extruded objects. In an embodiment, the software may be configured to align the cell grid so that it uses the smallest feasible number of cells for a given layer. In another embodiment, the software may be configured to allow for multiple cell sizes and/or non-grid creation by using some circle packing of the layer curves. In some embodiments, the software can be configured to minimize the overhangs by reducing the angle or extrude the furthest overhanging portions down to the build plate. (Processes for manually or automatically making such adjustments are shown and described in connection with FIGS. 30-32 .)

Conventional slicers typically work by intersecting a model with a surface at one point and calling that a layer essentially by extruding that layer up or down. One potential issue with this method is that it can miss any Z feature less than a single layer height. As the layer height increases, this can rapidly cause issues especially if the goal is to always make a stock positive component. To overcome this, in an embodiment, the software is configured to take multiple slices per layer and take the largest version of the superimposed curves to create a more accurate boundary for the layer. In an embodiment, the software treats one cell as one discrete deposition (e.g., one deposited cell 40).

Still referring to FIGS. 12 and 13 , the sorter 78 is a sorting object that takes the cell field and converts it into a sorted 1D array of cells. In an embodiment, the cell sorting is a multi-stage system where the field is first divided into three segments in which no cells are directly adjacent (unless there too few cells in a given layer), after which each segment is randomized or sorted, as described below, and then recombined into a single list of cells to be generated within the machine. The number of segments may vary. There may be adjacent, continuous depositions in a layer where there are three or fewer discrete depositions.

The post processor 80 can take a list of cell objects and convert it into commands that are readable by a machine, such as a welding robot. Notably, this may be the only step of the process that may be specific to the type of machine being used. Primarily, it provides the structure for a program and configures and moves through each cell in the list and applies the discrete deposition. In an embodiment, a deposition model, such as welding model 79 can be generated and provided to the post processor 80.

As discussed earlier, the sorting process can be based upon a stack of heuristics. In this system a series of heuristics could be applied to the cell field in which a heuristic gives each cell a weighting factor. The weighting factors for each heuristic are combined per cell, and the system can select the next cell to be deposited by finding the maximum or minimum value depending upon the weighting factors' sense. In this way, the sorting could take into account multiple factors such as, minimized distortion, maximized build rate, minimized thermal input, net cooling rates, maximum interpass temperature, etc., but also be flexible as the component is being built (e.g., as the temperature changes). Additionally, the software can provide a STEP, STL, or other solid output file that can then be used in later stages of processing. An advantageous manner for providing an ‘as-deposited’ model of the blank to a subsequent process that calculates machining tool paths is presented in FIG. 35 .

In an embodiment, the system may employ an algorithm or model to predict physical characteristics of the deposited cells and/or the component as a whole. Such physical characteristics include, without limitation, stress, strain, deformation, temperature, deposited cell thermal history, etc. The model can be a finite element analysis model based on the cellular mesh of the component to be produced. Each deposited cell can have an associated heat input based on processing parameters (e.g., voltage, amperage, and arc-on time). The thermal history of the completed component can be predicted by the model based on the order in which cells are sorted and produced within the slicing software. The data from the thermal model can be used to predict thermal strains and residual stresses within the completed component by using the same finite element analysis system. A process for predicting behavior and performing simulations and then making responsive adjustments to build instructions is set forth in FIG. 28 .

In various embodiments, the software may be configured to display the expected material properties of the component and/or how long the component will take to build using the chosen parameter set. For example, as discussed above, a model may be used to predict physical characteristics (e.g., in a plot or profile format), which may inform the user in making adjustments to the sorting. Due to the size and organization of the cells, the microstructure of the entire deposited structure (with the exception of the outer surface of the final component) could be controlled by modifying the parameters used to generate each cell. In an embodiment, the software can allow the user to adjust the parameters after the initial cellular mesh is created. This allows the user to iterate with various parameter choices to produce a component that best meets the desired material characteristics. In an embodiment, the discrete deposition process could control the tempering effect on alloy and high carbon steels in order to mitigate crack susceptibility commonly seen in other AM processes. Adjusting the cell generation parameters could also be used to control precipitation reactions in other alloys. The software can be configured to take the generated planes and do as much of the processing from planes to masked cell fields in separate threads or processes to optimize the speed. In an embodiment, the time frame for the software to process and slice a model is less than 0.1 s, which allows the system to be recalculating cell sequences according to data being collected during the build process. At least one process for performing such adjustments is explained in the context of FIG. 29 .

In an embodiment, each cell is traceable. Each cell has a number of associated parameters. For example, the history of what user created the planned cell and when may be stored. The associated parameters can also include what machine was used to build the cell (i.e., perform the discrete deposition to create the deposited cell(s) 40), the time and date of deposition, feedback from any sensors, and comparison with the predictions about that cell. Thus, the system may be able to predict and track defects throughout and tie them back to their root causes.

In an embodiment, process data may be collected and stored. Process data, such as amperage, voltage, and wire feed speed, can be easily captured by using standard welding equipment. This data can be used to continuously monitor cell quality and build a digital twin of the component, which can be used both to reduce non-destructive evaluation (NDE) requirements and as an aid for post-process machining. Data collection will also enable closed-loop control of the process to further increase performance and reliability.

As discussed above, the particular order in which the deposited cells 40 are deposited onto the weld plate 38 can be selected (e.g., sorted) based upon any of a variety of desired heuristics or other conditions. In an embodiment, the order of deposition can be selected to ensure that each deposited cell 40 is never placed next to the deposited cell 40 that was deposited last except where there are too few discrete depositions per layer. In another embodiment, stacked heuristics may be used to give preference to next deposited cells 40 that have a larger distance (or an ‘ideal’ distance given machine speed and necessary cooling delays) from the previous deposited cell 40. In yet another embodiment, the order of deposition can be selected to achieve a desired build speed for the metal component (e.g., maximum speed).

In one embodiment, the timing and/or order of deposition can be based upon a profile of physical characteristics of the metal component being manufactured. In such an embodiment, the timing and/or order of deposition can be selected to ensure that each deposited cell 40 is deposited in an area that is cool enough to receive the deposited cell 40. To that end, in some embodiments, the interpass temperature (i.e., temperature of the metal component prior to an additional deposited cell being welded to the metal component) can be controlled based on, for example, the timing of each weld or the order of deposition. Control of the interpass temperature affects the desired geometric shape and material properties of the metal component. Multiple techniques may be used to control the interpass temperature, as discussed below, and more than one technique may be used at a time. In an embodiment, the fabrication process includes a time-based delay between welding of each deposited cells 40. For example, the deposited cells 40 may be applied periodically. The time-based delay may be based on, for example, the interplay between the cross-sectional area of the sliced component in the current deposition surface (e.g., the surface area of the layer currently being deposited, in mm²), the temperature of the metal component (e.g., measured or predicted in ° C.), and a delay time (e.g., in seconds). As the cross-sectional area decreases, the temperature of the component was observed to increase. Delaying the welding of the next deposited cell 40 reduces the overall heat input and, consequently, the temperature of the metal component. Smaller cross-sectional areas may require longer delays between each weld. The time-based delay between the welding of each deposited cell 40 may be on the order of seconds. For example, the delay between each weld may be on the order of seconds in the single digits. The length of the delay may be constant or may vary over time. In an embodiment, the length of the time delay can vary based on changing characteristics of the component as it is built. For example, the length of the time delay can be adjusted based on changes in component temperature, the cross-sectional area of the current layer being deposited, energy input associated with the deposition parameters of each deposited cell 40. FIGS. 23 and 24A-24D elaborate on the control of delays between deposit events, such as single-mass transfer events.

In some embodiments, a predictive algorithm or model, such as one discussed above, may be used to determine or adjust the deposition order and timing. Using such an algorithm or model, the sorting and timing of the deposition of each deposited cell 40 may be determined or adjusted to reach a goal, such as minimizing thermal gradients throughout the component, maintaining a certain cooling rate, reducing or evening out residual stress, or producing maximum overhang. The algorithm or model may be adjusted based on feedback of the build process. A process for such adjustments is explained in connection with FIG. 28 .

In another embodiment, the timing and/or order of depositions can be controlled based on feedback from the welding system 14. For example, the welding system 14 may include a temperature sensing device associated with the controller 36. The temperature sensing device may be, for example, coupled to the weld gun 24 or the articulated robot 26. Examples of the temperature sensing device include, without limitation, an optical pyrometer, an infrared (IR) thermometer, etc. The temperature sensing device is configured to measure the temperature of the welding pool. The user may define a maximum interpass temperature. The maximum interpass temperature may vary and, in some embodiments, may be in a range of 0° C. to 2000° C., 0° C. to 1000° C., 0° C. to 500° C., 0° C. to 100° C., 100° C. to 500° C., 100° C. to 1000° C., 100° C. to 2000° C., 200° C. to 500° C., 200° C. to 1000° C., or 200° C. to 2000° C. When the weld gun 24 is moved to the next position, controller 36 receives the newly measured temperature form the temperature sensing device. If the temperature is below the maximum interpass temperature, the weld gun 24 can weld the next deposited cell 40. If the measured temperature is above the maximum interpass temperature, the system may perform one of two operations. First, the controller 36 may delay the next weld until the measured temperature is below the maximum interpass temperature. Second, the controller 36 may move on to the next planned cell in the program, with the intent of returning to the skipped cell at a later time, which allows the portion of the metal component that is too hot to cool down prior to welding the skipped cell. Thus, because any delay between welding the deposited cells 40 is based on temperature, the time between each weld may vary (e.g., not be periodic). (FIG. 29 provides an example process for the above features. FIGS. 24A-24D further depict, and explain control of, delay intervals.)

In another embodiment, the temperature sensing device may include a thermal imaging camera. The thermal imaging camera can be configured to measure the temperature of a relatively larger portion (e.g., compared to an optical pyrometer) or the entirety of the metal component. The controller 36 may be configured to determine whether the temperature of the area intended for the next deposited cell 40 is above or below the maximum interpass temperature as discussed above. Additionally, because the temperature of a larger portion of the metal component is being analyzed, the controller 36 may be configured to measure and analyze localized thermal trends. The thermal trends may affect the order of the upcoming welds. If, for example, the controller 36 sees that the area for an upcoming weld is above the maximum interpass temperature, the controller 36 may proactively move to the next weld that has a temperature below the maximum interpass temperature. (Refer to FIGS. 26, 27 and 29 for more details.)

While the above embodiments are described in a welding application, the technology is not so limited. The benefits of simplifying programming, reducing thermal stresses and distortion, and reducing personnel/operating costs apply across many applications. The embodiments as described above may be applied in additive manufacturing applications such as laser/powder directed energy deposition, laser/wire directed energy deposition, laser powder bed fusion, binder jetting, cold spray, or a combination thereof. While the embodiments as described above are directed to metal materials, the materials useful in the embodiments can include, without limitation, metals, alloys, ceramics, plastics, composites, glass, and a combination thereof. Further, these techniques may be applicable in painting, repair, and other robotic sorting applications.

A three-dimensional space may conceptually be subdivided into an array of finite-sized elements of volume called ‘voxels’ that each have a particular location and bounds within the three-dimensional space, in much the same way that a two-dimensional raster image may be subdivided into ‘pixels’ that are indexed or arranged by row and column.

As used herein the term ‘single-mass transfer’ refers to a depositing of material, either onto a substrate or upon previously deposited materials, as a consolidated single mass. A single-mass transfer event will generally correspond to a single instance of energizing the given mass of feedstock material as the mass becomes integral to the ‘workpiece’ or part being formed through an additive process. A single-mass transfer may also be termed a ‘unitary deposition’ or ‘unitary mass transfer’ event and the material so transferred may be termed a unitary deposit. Such action may correspond to filling a voxel space, especially when the voxel spaces that subdivide a build space are roughly matched in size to the range of singular deposit sizes that a given depositing component supports.

In accordance with preferred embodiments of the present teachings, each instance of a single-mass transfer will entirely or substantially fill a voxel space having planned boundaries in XY and depth in Z. In general, as an object is constructed from approximately planar layers of deposited material, each voxel to be filled will have a height equal to a layer height which is also the vertical increment by which the movement of the depositor(s) will be placed further away from a build surface as one layer is completed and a next layer is to be commenced.

Thus, in the course of build a layer of material, a deposition performed by single-mass transfer preferably creates, in a single momentary emission as a consolidated mass, a deposit of material that fills the voxel to the designated layer height. Preferably, therefore, a build layer is formed from a monolayer of adjoining material deposits. In accordance with preferred embodiments, the depositing element need only perform such a deposition once at each designated nominal X-Y location in the course of filling a given layer. In accordance with a preferred embodiment and as will be explained in conjunction with FIG. 21 , a depositing element will generally remain positioned at a first XY location or within the bounds of the area being filled (that is, within one nominal radius of the voxel's nominal XY location) and then move to a second location that is distanced form the first by at least three voxel radii before performing a next deposit. This intentionally reduces the incidence of making deposits that are both adjacent physically and consecutive in the sequence of deposits.

The mass being deposited may be energized by, for example, pressure, heat, release of energy due to phase change or the release of chemical potential energy. Sources of heat to energize transferred matter may include, but are not limited to, electrical current flow and ohmic heating, conduction, radiation, convection from other heat-laden sources, electrical arc or plasma, combustion flame, sonic energy, friction, electrical inductive heating or electromagnetic radiation, such as photonic energy or radio waves. The mass being deposited may be energized by any one of the above or by simultaneous or sequential combinations thereof.

As illustrative examples, FIGS. 14A and 14B depict two processes capable of depositing a material in a manner consistent with a single-mass transfer as just described. FIG. 14A is representative of a process known as cold metal transfer (CMT) which is considered one form of gas metal arc welding (GMAW) as was explained earlier. A surface upon which a quantity of material is to be deposited is shown as substrate 1410, which may be a build surface on which to initiate construction of an object in layers or which may represent layers of material that have been previously deposited. A tip of a depositor device 1420 or ‘depositor’ is shown (in highly simplified cross-section) as having a central passage 1423 through which a wire 1424, comprising the material to be deposited, is fed outward in a controlled fashion and protrudes from the tip of the depositor.

Depositing device 1420 may comprise electrodes and additional passages (not shown) for carrying a shielding gas. A flow of an inert shielding gas may be directed into the vicinity of the where wire 1424 will make contact with substrate 1410 and this flow may need to commence some time before the deposition (pre-purge) and continue for some time afterward (post-purge) prevent unwanted oxidation. (If applicable, the times to conduct pre-purging upon arrival at a nominal deposit location and to dwell at the location for post-purging shall be assumed to be included in the overall cycle times depicted elsewhere herein, such as in FIGS. 20 and 22A.) Wire 1424 is electrically coupled to a source of welding electrical power that is also coupled to substrate 1410 and that creates sufficient voltage and current to create an electrical arc 1430 as the end of the wire comes into close proximity with substrate 1410. (See panel (i).) Arc 1430 heats the end of wire 1424 as the wire is fed outward and approaches substrate 1410. At some point, wire 1424 makes solid electrical contact with substrate 1410, effectively creating a short circuit across the arc gap. (See panel (ii).)

The end of the wire is thrust towards the substrate and, having been heated by the arc, deforms and fuses with the substrate to form a cooling deposited mass 1425. As shown in panel (iii), wire 1424 is withdrawn and separates from deposited mass 1425 which has been transferred to, and become part of, the substrate. The short circuit now having been opened, electrical arc 1430 can be resumed. In the context of the present teachings, the depositing device may move to a different location prior to restarting the electrical arc.

Thus, a single, consolidated mass is delivered in a single action by the depositor at a given location contributing to the formation of a layer, preferably a monolayer, comprising many such deposits.

FIG. 14B portrays an alternative process that also comports with a single-mass transfer. In this example, depositor 1420 is shown, in cutaway view, to comprise a cylindrical passage 1423 through which wire 1424 is fed towards substrate 1410. A fixed amount of wire 1424 is fed to issue from the end of depositor 1420. Next, a flame or momentary electrical discharge, delivered by moving electrode 1431, is used to melt the protruding portion of wire 1424 such that it forms ball 1426 due to surface tension. Depositor 1420 then moves toward the substrate, trapping ball 1426 and forcing it into contact with the substrate. Ball 1426 attaches to the substrate by a combination of heat, pressure, sonic energy, friction due to scrubbing motion or other effects. The ball typically deforms or flattens as shown in panel (iii). The upper surface of the ball mass 1435 may be shaped or tooled by the tip of depositor 1420. After the attachment is made, depositor 1420 and wire 1424 are raised together. To accomplish this, wire 1424 may be momentarily mechanically clamped by a mechanism in depositor 1420. The tip of the wire 1424 may be caused to selectively separate from the secured ball mass at neck portion 1427 by, for example, applying slight shearing motion to the depositor before lifting or by applying sonic energy to cause localized work hardening at the junction between ball and wire. The depositor may then proceed to other locations and perform similar deposits until the layer has been suitably filled with material as necessary in the course of constructing a given object. Here again, a single, consolidated mass is delivered in a single action by the depositor at a given location contributing to the formation of a layer, preferably a monolayer, comprising many such deposits.

FIG. 15 depicts how an array of closely packed deposits may be planned to form a 2D layer or sheet. More particularly, FIG. 15 shows an array of voxel boundaries 1500 and each voxel boundary is depicted as being hexagonal, though other tessellated arrangements of regular or irregular polygons may suffice as well. It should be made clear that each ‘voxel’, per se, is a mathematical representation of a volume having location and boundaries specified in three-dimensional coordinates whereas array 1500 represents the two-dimensional areas that are formed when a plane intersects myriad adjoining voxels. For convenience in the explanation that follows, each location within array 1500 may be referred to as a ‘voxel boundary’, ‘voxel space’ or simply a ‘voxel’ because it corresponds to a specific voxel location in space and the bounds of the voxel within the plane of the tessellation pattern. In the context of a layer-wise pattern, each voxel space is said to have a nominal XY location, which may correspond to, for example, the center or centroid of the voxel-bounded space when viewed in a two-dimensional plane.

Within array 1500, an alternating regular arrangement of designations of the voxels is represented in that a first subset 1502 are designated with the letter ‘A’, a second subset of voxels 1504 are designated with the letter ‘B’, and a final subset 1506 of the remainder of the voxels are designated with the letter ‘C’.

The layer shown is part of a general field of voxel boundaries just showing a hypothetical solidly filled pattern. Generally, only a subset of such an array will be needed to form an object shape for a given layer. Object-specific layer contours, derived from ‘slicing’ a digital data model representing the three-dimensional shape of the object, are to be imposed as explained elsewhere herein conjunction with FIGS. 3,10 and 19 .

The hexagonal outlines approximate the mating interfaces as roughly spherical or cylindrical deposits are placed in close proximity. For practical purposes, describing and manipulating each deposit as a hexagonal shape simplifies calculations during modeling and simulations.

It is important to note that, even though the array of Tillable voxels shows adjoining positions, the voxels need not be filled in a consecutively sequenced, side-by-side manner. In fact, in accordance with the present teachings, notable advantages are achieved by avoiding such a pattern of consecutive deposits that are physically adjacent. In many material deposition techniques, such as cold metal transfer, substantial heat energy may be imparted to a substrate as energized deposits are made. Even distribution of heat energy across a layer and over time is considered generally desirable to avoid hot spots and extreme temperature gradients, thereby reducing stresses within the object being constructed.

One way to generally assure that heat-carrying deposit events are distributed both spatially across a layer and temporally in terms of sequence is to designate groupings of voxels as shown in FIG. 15 .

The voxels are labeled ‘A’, ‘B’ and ‘C’ in a pattern such that each unit is surrounded only by voxels having a different label. For example, no ‘A’ voxel is adjacent to another ‘A’ voxel. This pattern is referred to herein as ‘soccer sort’ because the intermeshing of groups of hexagons resembles the manner in which like-colored panels on a soccer ball are separated by a complementary color rather than adjoining one another.

Applied in the present context, in a one-dimensional time-ordered sequence of locations at which deposits will be made (as planned by the operation of sorter 78), the placement of two consecutive deposits in contact with one another, which would undesirably concentrate heat in one vicinity within a short period of time, is averted by simply arranging the sequence to cause all ‘A’-designed locations to be filled by material deposition, followed by ‘B’ and ‘C’ locations.

As deposits are made according to ‘A’-designated locations (subset 1502), each deposit is isolated from any side-to-side contact and heat mainly dissipates by conduction into the underlying substrate or underlying layers of the same build. (See FIG. 10C.) As deposits are made according to ‘B’-designated locations (subset 1504), each new deposit is isolated on at least three sides and on the other three sides it makes contact within ‘A’-designated deposits that have already cooled substantially. (See FIG. 10D.) Finally, as deposits are made according to ‘C’-designated locations (subset 1506), each will be placed in contact surrounded by previously deposited ‘A’ and ‘B’ locations that have already been cooling for some time. (See FIG. 10F.)

FIG. 16 presents an example time-ordered sequential list 1600 comprising deposit locations as might correspond to performing deposits in a sequence as depicted in FIG. 15 . Time-ordered sequential list 1600 of deposit locations may exist as structured data in a computing system and is effectively a series of instructions by which a 3D printing system would move a depositor to specific locations and perform deposits of build material, eventually filling a layer as was shown in FIG. 15 . In FIG. 16 , each record 1640 is shown to be indexed by a sequence number 1602 and is shown to comprise X- and Y-location coordinates field 1606. (In an actual data structure, sequence number 1602 may be inherent by array indexing or linking order within a linked list. It may be unnecessary to explicitly include a sequence number as a data field within each record, but sequence number 1602 is shown to facilitate the explanation that follows and to represent the relative order of appearance within an array, linked list or other sorted data structure.)

Record 1640 is merely illustrative and may, in some implementations, comprise a lesser or greater number of fields or may comprise alternative fields. The data fields shown for record 1640 may be distributed among other structures, such as separate tables within a relational database. Record 1640 is shown to comprise a ‘Tool’ field 1604 which may be useful when multiple depositors or other effectors are in use. A ‘Point Name’ field 1605 may contain a textual name or other convenient reference to uniquely specify a voxel space. A ‘Mass’ field 1608 and an ‘Energy’ field 1610 may express the amount of material to be deposited and the amount of energy to be imparted in making the deposit while at the nominal location specified in location field 1606. While these fields are shown as examples, it is contemplated that these fields may be replaced by such data as expressions of material feed instructions to a motor (perhaps driving wire 1424 forward) or by welding current and time duration (corresponding to a specified total energy delivery into the deposited mass). An estimated time-of-arrival or ‘ETA’ field 1612 may optionally be included to indicate the time within the build that the specified deposit is expected to occur. Although, this can be estimated or calculated without a dedicated field within a record 1640, this stored value may be beneficial for dynamic collision avoidance when fabrication system 10 is implemented with multiple independently moving depositors.

Aside from being ‘time-ordered’ in a sense implied by being a ‘sequence’, the ‘time-ordered’ aspect recited herein also acknowledges a possibility of including, in each instruction record, a time-related data field indicating when the deposit will occur. This field can be used as an ‘ETA’ of sorts to estimate cumulative build times or as an explicit command or an encoding for a specific time that a deposit should occur. In the case where multiple separately moving depositors may reach into a shared space, the inclusion of timing information allows for detecting collision possibilities, especially when an unplanned delay affecting one subsystem during a build may shift timings and create new potential collision instances. The embedded timing information can help detect collision risks and then be edited, along with dynamic re-sequencing of the list, to avert interferences and allow the build to continue.)

A ‘Dwell’ field 1614 may be included to encode for a time delay between deposits or before or after each location-to-location move corresponding to various delay times that will be explained in the context of FIGS. 24A-24D. A ‘Weight’ field 1616 may be used for assigning a value to a voxel location as may be used by various heuristics to decide the sequencing of material deposit locations. Weight field 1616 may reflect whether one candidate ‘next location’ for a deposit is advantageous some another location.

Notably in FIG. 16 , a first grouping of entries 1630 at the top of list 1600 shows that all of the ‘A’ designated locations are to be deposited first, followed by group 1632 comprising all of the ‘B’ designated locations and then finally, in group 1634, all of the ‘C’ designated locations. Absent other considerations, the ordering of ‘A-B-C’ is presumed arbitrary and the same objectives could be achieved even if the sequencing of groups were, say, ‘B-C-A’ or the if these grouping designations were shifted by a row or by a diagonal. (See FIG. 15 .) Furthermore, although the general ordering of groups tends to automatically prevent consecutive deposits of material into adjoining spaces, it is not to be construed as an inviolate rule that, for example, that no ‘A’-designated locations may be interspersed with any ‘B’-designated locations in accordance with the present teachings. On the contrary, as will be explained elsewhere herein, there are circumstances where sequencing may be intentionally altered to accomplish control objectives and which may cause different initial groupings to be deposited in an interspersed ordering. Note that non-adjacency of consecutively ordered deposits can still be achieved in almost all cases because, for a given ‘A’-designated voxel space, there are generally many distant ‘B’ and ‘C’ voxel spaces that could be deposited next without directly contacting the ‘A’-designated space.

FIG. 17 is a variation of the pattern of voxel boundaries that was shown in FIG. 15 and illustrates that, to even further assure distribution of deposited locations over time, a sequence of performing deposits that are ‘A’-designated locations may be further scattered spatiotemporally within the ‘A’ subset. As shown by the arrows in this example, filling of voxels labeled ‘A0’, ‘A21’, ‘A2’ and ‘A23’ are performed in sequence, followed by deposits at other parts of the layer that are not shown in FIG. 17 . This is as an alternative to executing all of the ‘A’-designated locations in close proximity, such as a sequence ‘A0’, ‘A1’, ‘A2’, ‘A3’ and so forth, or according to ‘nearest neighbor’ priority as in ‘A0’, ‘A20’, ‘A10’, ‘A1’. This may at first seem inconsequential because all of the voxel locations do eventually get filled (subject to the masking of voxels to form a particular shape) but the filling order affects, and allows for control over, thermal behavior as the additive process proceeds to build an object.

Even among the ‘A’-designated locations it is possible to further scatter and distribute the injection of energy into the part to improve the evenness of energy injection and resultant temperature rises. Furthermore, in consideration of the finite travel time that it takes for the machinery of fabrication system 10 to move a depositor from one location to a next location, there is a trade-off involving the distance of travel between successive deposits and the time that it takes to make such moves. Even though it may be possible to arrange a sequential list to cause consecutive deposits to be 20 or 50 voxel compartments away in the voxel pattern and the depositor could jump back and forth over considerable distances further increasing the distribution, the overall time to build a part would start to increase excessively. Accordingly, it is contemplated that, depending on part geometry, there may be optimal distances between successive deposits—even within each subset of ‘A’, ‘B’ or ‘C’-designated voxels—to achieve both evenness of heating and reasonable tool travel times. In view of cooling behaviors, there may be an optimal average travel time and distance to allow between instances of discrete material deposits for each given layer of a given part.

As a result of the sequencing approach taught by way of example herein, a general pattern is established wherein: a first-applied group of the deposits to form a given layer will be each made upon a substrate or previously deposited layer and, at the time of being deposited, will not be formed in contact with other deposited materials within the same group; a secondly-applied group of the deposits will be made in contact with the substrate or previously deposited layer and also in contact with at least one previous deposit from the first-applied group; and a thirdly-applied group of deposits will contact the substrate underneath, as well as at least one of the prior deposits from first-applied group and at least one of the prior deposits from the secondly-applied group. In a given layer, there may be exceptions depending on part shape and voxel pattern alignment, but the majority of deposits forming a layer (or a build comprising multiple layers) will fall into one of these categories. As layer of deposited material is formed in accordance with preferred embodiments, the proportion of deposits that can, by proper sequencing, be formed in adherence to the general principle of assuring non-adjacency of consecutive deposits may often be 100% or may fall in the any of ranges of 50% to 100%, 60% to 100%, 80% to 100%, 90% to 100%, 80% to 90%, 80% to 95%, or the like.

FIG. 18 depicts a progression of data descriptions involved in forming a part blank based upon a three-dimensional model representing the outer surfaces of a corresponding final part. In FIG. 18 , the final shape of an example part to be fabricated is described by 3D model 1810. 3D model 1810 is provided as input to slicer application (‘slicer’) 1872, which may be an application operating on a personal computer or the like and providing a display approximately as shown (although some slicers operate without providing a display to an end user.) The image of slicer application 1872 shows a typical display of a three-dimensional shape 1811 rendered based on model 1810 and then shows a conceptual view of a plane 1807 parallel to the base of shape 1811 or parallel to the build platform that will be used during additive manufacturing, assuming that shape 1811 is to be formed in the orientation shown. Plane 1807 is depicted as intersecting shape 1811 part way up the total height of shape 1811 and the results of the intersection between the plane and the shape is indicated, for example, by a ‘contour’ or ‘curve’ 1805. Of course, to produce an entire blank part, the intersection of many such planes 1807 at different incremental heights will be performed by slicer 1872 to form a composite set of data for all part layers. A layer-by-layer visualization of how each plane 1807 intersects shape 1811 is usually option within a slicer application and it is very common for an end-user to invoke slicer 1872 without reviewing each layer slice. However, at least for illustrating the concept of the slicing of shape 1811, a particular “model layer slice” 1814 is shown representing one of many such model layer slices obtained by the operation of slicer 1872. Model layer slice 1814 shows that when an intersection is computed for a particular plane 1807 at a given vertical height along shape 1811, the result is contour 1802 in this example. The action of slicer 1872 corresponds to the role of slicer 72 as was depicted in FIGS. 12 and 13 earlier.

Next, model layer slice 1814 is combined with, or compared to, what may be termed a ‘cell field’ or a ‘voxel pattern’ 1804 which may resemble the pattern shown in FIG. 15 and will have been created by the action of cell generator 74 depicted in FIGS. 12 and 13 . Within masker 1876, model layer slice 1814 is aligned with pattern 1804 to determine which cells or voxel locations within pattern 1804 should be included in order to implement or fill in the layer outline expressed in contour 1802. For the particular model layer slice 1814 shown having contour 1802, the specific group of voxels for inclusion by the operation of masker 1876 are shown as shaded voxels 1812. These are referred to as the ‘required voxels’ for the layer. Non-shaded voxels 1813 within pattern 1804 represent voxel locations for which no material needs to be deposited to form the part blank depicted by shape 1811. (For simplicity, this example does not involve support structures as might be required for other parts that have overhangs.)

A listing of the shaded voxels and their specific locations within pattern 1804 form a ‘raw’ list of voxels 1877 for inclusion but as yet the sequence in which the voxel spaces are to be filled with material has not been established. The arrangement of required voxels into a specific order is performed by sorter 78 as described earlier in conjunction with FIGS. 12 and 13 . Sorter 78 acts to arrange the list of required voxels into a particular temporal sequence, such as by ‘A-B-C’ groupings as described in connection with FIG. 15 and possibly further by the actions of processes to optimize temperature control as will be described later. The result of the action of sorter 78 is a sequential list of deposit locations 1840 which may be formatted, for example, as in FIG. 16 and which will also correspond to output of process 2200 to be described later.

The operation of masker 1876 may include evaluating multiple different alignments between pattern 1804 and contour 1802 and selecting a specific alignment that efficiently fulfills a given contour 1802 by material deposition according to specific voxel spaces. Processes for performing such refinements by masker 1876 are later shown and described in conjunction with FIG. 32 .

FIG. 19 depicts a manner in which a single layer of a model that describes the shape of an object to be built is compared to an array of voxels available for being filled in the course of building a layer of an object. FIG. 19 may be compared to FIG. 3 and FIG. 10A shown earlier. Contour 1902 of the object's shape for the particular layer is shown as a dashed line superimposed upon a portion of a voxel pattern similar to that shown in FIG. 15 . Voxel pattern 1904 will have been created by cell generator 74 shown in FIGS. 12 and 13 earlier. Masker 76 then decides, in the context of this relative positioning, which voxel spaces need to be filled with material to completely ensure that there is material at all points along the contour 1902 of the object to be built. (Otherwise, the finished object would exhibit surface voids when the additively manufactured blank is machined to final size.) As mentioned earlier, for creating a blank part that will undergo machining to final shape, this most often involves depositing materials into voxel spaces whose boundaries extend outside the boundaries of part contour(s) 1902.

The output of masker 76 will simply be an indication of which voxel spaces in the pattern need to be included in the layer so that material will be deposited at the corresponding locations. This information is then provided to sorter 78 (shown in FIGS. 12 and 13 ) that compiles (or receives from masker 76) a list of only the required voxel locations and determines the specific sequencing of the voxel locations and builds a one-dimensional time-ordered sequential list for filling the voxels that will constitute the particular layer. In FIG. 19 , for example, a voxel within pattern 1904 that is not needed to contribute to filling the volume encompassed by the object contour 1902 is shown as voxel space 1910. The location for voxel space 1910 will not be included in a list of locations or waypoints at which the depositor will act the course of actually building the part. On the other hand, a shaded voxel space 1912 is designated as a required voxel space to be included among the list of locations to be filled by the depositor in order to form the part represented by the shape of contour 1902. (To facilitate explanation, the non-shaded voxel spaces are labeled in a regular pattern whereas the shaded voxel spaces lack labels but do adhere to the same labeling pattern.)

The shaded set of required voxel locations for providing material along contour 1902 and providing solid infill are identified in a sequential list of voxel locations 1920, generated by compiling the list of the shaded voxel spaces (by the action of masker 76) then by sorting into a one-dimensional sequence by sorter 78. Note that, for list 1920, only the voxel label and XY location data fields are shown though, in actuality, each record in list 1920 will resemble record 1640 and comprise other fields.

Referring briefly back to FIGS. 15 and 17 , it may be observed that voxels that have the same letter designation assigned in the soccer sort are typically placed so that two intervening voxels which will generally be deposited at substantially different times according to the time-ordered sequential list. For example, referring to FIG. 17 , voxel spaces 1702 and 1704 may be the sites of corresponding deposits well before the intermediary adjacent voxel spaces 1706, 1708 will be filled. After depositing material within the location corresponding to voxel space 1702, the depositor preferably moves directly to another location that is several voxel diameters away, or even further, for the sake of distributing the input of energy across the part layer that is being built. Following the deposition of material into location indicated by voxel space 1704, the depositor may move to many other locations and perform deposits, for example, at least in fulfillment of all of the ‘A’-designated voxels before returning to fill one of the intermediary voxels 1706, 1708 which may be ‘B’- or ‘C’-designated. This attribute of avoiding the deposition of consecutive depositions material into physically adjacent or adjoining voxels is highly preferable in accordance with the present teachings and tends to be inherently favored by performing the so-called ‘soccer sort’ shown.

Another useful consequence of creating a time-ordered sequential list by applying a soccer sort pattern 1500 as a default is explained in connection with FIG. 20 . A nozzle or depositor tip 2020 is shown in proximity to a substrate 2010 which, as described previously, can be a build substrate upon which to create an initial layer of the part or may represent previous layers of material that have been deposited. In FIG. 20 , depositor tip 2020 is seen to be aligned with nominal location ‘J’ (indicated by dashed centerline 2031) corresponding to, or which may be likened to, the location of voxel 1702 shown in FIG. 17 . Depositor tip 2020 remains within the bounds of nominal location ‘J’, as indicated by dashed lines 2040 and 2041, until the instructed material deposit has been made at nominal location ‘J’. FIG. 20(a) depicts a preparatory step of positioning the nozzle at nominal location ‘J’. FIG. 20(b) corresponds to the action of depositor tip 2020 performing a material deposit, such as by a single-mass transfer, to form a mass 2025 that becomes attached to substrate 2010 while depositor tip remains substantially within boundaries 2040, 2041 of the nominal voxel location ‘J’. FIG. 20(c) corresponds to depositor tip 2020, having concluded its deposition at nominal location ‘J’, moving then to another nominal location ‘M’ (center line 2032) that is preferably distant from nominal location ‘J’ by at least three times a voxel radius and, in practice, considerably further than three times a voxel radius. This action avoids high concentration of energy input into a small area within a short period of time. Another characteristic evident in FIG. 20 (and explained in FIGS. 22A-D to follow) is the non-concurrency between the act of moving between nominal deposit locations and the act of depositing material at a location.

It is noted that with, polymer extrusion 3D printers for example, it is possible to encounter situations in which an extruder fills a small interior space then moves without extruding (‘travels’) to another location perhaps to fill another tiny interior space. Filling the small interior spaces may call for moving the extruder along a small tool path, resulting in brief but continuous extrusion over more than the width of the extruded bead, but it is conceivable that an extruder could be directed by slicer-generated instructions to deposit a miniscule trace. In polymer extrusion or bead-forming weld process, these short-deposit occurrences are incidental or minimal and are generally avoided because of the inherent inefficiency of having an extruder waste time moving yet accomplishing very little volume filling. Slicers often disregard the filling of spaces that are below a threshold size and, in all such cases, the slight void to be filled is surrounded by extruded traces rather than other adjoining pinpoint-filled areas. With these common bead-forming processes, the overwhelming majority of the part is designed to be efficiently formed by depositing of material as the depositing element moves along a path to form a continuously deposited bead. In contrast, the present teachings recognize and maximize certain advantages of intentionally non-continuous deposition that have been heretofore unappreciated, such as fine temperature management by resequencing of scheduled unit deposits, enablement of enlarged unit-deposit volumes and improved coordination opportunities when multiple robotic depositors collaboratively build a single part. Consistent with the present teachings, the formation of a continuous bead is de-emphasized in favor of achieving a roughly formed blank part to undergo subsequent machining while realizing other compelling advantages explained herein.

Typically in accordance with preferred embodiments, when a part is built in sequential layers or strata, a first deposit that has been made in the course of depositing a first layer will not receive any other mass deposited on top until all of the other deposits for the first layer have been completed. In other words, a typical sequencing of deposits encompassing two layers may involve, within a first layer, a first deposit, followed by at least one second deposit and preferably several more intervening deposits that are also within the first layer but not deposited in contact with the first deposit. Preferably after these other non-contacting deposits are made, at least one third deposit is made as part of the first layer that does contact the first deposit, and then any other deposits (some of which may contact the first deposit and others may not contact the first deposit) are made to complete the formation of the first layer. After the first layer is completed, a second layer may be built by continued deposits onto the first layer and one or more of these second layer deposits may make contact with the ‘top’ surface of the first deposit.

It is acknowledged that in some systems, such as those employing multiple independently moving depositors, it may be possible to commence a second layer in some areas of a build even while a first layer is still being completed. The general pattern will be that a first deposit becomes surrounded by other deposits of the same layer before another deposit, such as from a subsequent build layer, is placed on top. This is in keeping with the general principle that each deposit completely fills an assigned voxel space defined by the layer thickness and that a unitary mass transfer sufficiently fills the voxel space such that only one mass transfer is needed at each distinct nominal location within a given build layer.

FIG. 21 presents a logic flow for a process 2100 for interpreting a sequenced list of deposit instructions, such as list 1840 presented earlier, and carrying out the steps to actually build an object. (While this general process for making deposits according to a sequential list is applicable to single-depositor systems, an understanding of this illustrative high-level process lays a foundation for describing multi-depositor implementations later herein.) It should be noted that the sequenced list of deposits 1840 may be a data structure or data file that could be stored on a fixed medium or transmitted or prepared at a time and place considerably distant from the execution of process 2100. Alternatively, and as will be explained further below, the preparation of such a list as described in FIG. 18 may occur immediately before, or in continuity with, the execution of process 2100 and in some instances may even be reiterated during the course of actually building the part as will be demonstrated with other techniques described herein. When a time-ordered sequential list is provided in step 2102, which signifies the commencement, invocation and initialization of process 2100, step 2110 is next performed to retrieve one of the specific deposit location instructions from the list. One such deposit location instruction would correspond to, for example, a single record 1640 as was shown in FIG. 16 .

Once an instruction has been retrieved, then step 2112 is executed to move the depositing device to the location coordinates listed on that line, in an action analogous to FIG. 20(c). Then, in step 2114 and in analogy to FIG. 20(b), a material deposit occurs, such as by a single-mass transfer event. Once the deposit is performed or attempted, then decision step 2116 is executed which refers to evaluating whether the deposit was successful. For some types of processes, it is possible that an attempted transfer of mass fails due to such factors as misfeed of raw materials (wire 1424) or failure to form a ball or an electrical arc as depicted in FIGS. 14A-B. Accordingly, decision step 2116 corresponds to determining whether or not any form of detectable error has occurred during the attempted deposit. If it is determined that the deposit was not successfully made, then step 2118 is performed to take corrective action, such as by ensuring that a wire is fed from a nozzle of the depositor, by switching depositor nozzles in case one is worn out or by alerting a human operator of the fabrication system to take corrective action. After such corrective action has occurred, then an attempt is made to complete the deposit at the specified location by returning the flow of execution to step 2114.

If and when, in step 2116, a deposit at the nominal location is detected to have been successful, then the flow of execution proceeds to another decision step 2120 to determine whether all deposit locations in the sequential list have been processed and, if so, process 2100 concludes in step 2121. Reaching this point signifies that all discrete deposits ordered for the subject layer have been completed, at which point the system may move to the next highest layer in the build, if any, and repeat all the steps above until all layers needed for the part blank have been completed. If on the other hand, in step 2120, it is determined not all locations in sequential list have been processed, execution, optionally and in accordance with preferred embodiments, proceeds to step 2122 to assess the conditions of the system at large, or of the workpiece, as a result of the most recent deposit accomplished in step 2114. This may include assessing temperatures of the part, build stresses or other factors. While it is possible to simulate or predict many conditions that will be encountered before a build takes place, it is possible for some unforeseen circumstances to affect temperatures across an object being built. These sources of variation may include differences in convective airflow or forced airflow, the electrical resistance path through underlying layers of the build when welding currents are applied, concentrations of mass on previous layers underneath the current layer that is being built and variations in energy input to the mass that is being transferred, to name a few.

In step 2124 and based upon observations gathered in step 2122, a decision is made as to whether there is a need to delay the next deposit, such as to alleviate problems with undesirably high temperature buildup in some areas. Delaying new deposit events for a time may allow the energy that has been thus far transferred into the workpiece to dissipate for a time, allowing the part to cool off before additional deposits of material. If no delay is deemed necessary or beneficial for the build process in step 2124, then execution simply returns to step 2110 to retrieve the next deposit location from the time-ordered sequential list and to move to a different deposit location which would correspond to the action of moving to a next location some distance away as shown in FIG. 20(c). Alternatively, if the operation of step 2120 determines that temperature conditions or other observable factors of the workpiece warrant delaying the next deposit event, then delay occurs by execution of step 2126 to, for example, delay movement of depositor nozzle 2020 as shown in FIG. 20(c) so that it momentarily dwells at nominal location ‘J’ for an additional period of time. Alternatively, the delay implemented in step 2126 could correspond to moving depositor tip 2020 to nominal location ‘M’ but then, once in place there, delaying the execution of a deposit as in FIG. 20(b). Note that steps 2122, 2124 implement contingency logic wherein the circumstances and success of the placement of a deposit, such as at nominal location ‘J’ shown in FIG. 20 , is evaluated before the initiation of a deposit at another location, such as nominal location ‘M’ shown in FIG. 20 .

FIGS. 22A through 22D show timing diagrams to explain the temporal relationships between the depositing action taken by depositor tip 2020 and the movement of the depositor to a different location carried out by motion mechanisms of fabrication system 10. FIGS. 22A-22D may be usefully viewed alongside FIGS. 20 and 21 during the following explanation. In FIG. 22A, time axis legend 2202 indicates that time progress is plotted left-to-right. A ‘depositing action’ trace 2210 reflects whether, at a given moment in time, the depositor is actively performing a deposit, such as by a single-mass transfer event, or is in an ‘idle’ state. Each vertical pulse 2205 along trace 2210 signifies an instance of depositing material, such as a single-mass transfer event.

Plotted along the same time axis as trace 2210, ‘depositor motion’ trace 2220 indicates, at a given time, whether the depositor is being moved by the system to a specified deposit location or is remaining at one of the nominal locations. Over a first time span 2240, the depositor is indicated as being in motion to approach the location for a specified deposit. During this time, the depositor is not depositing any material. At a first point in time 2250, the depositor comes to rest at a first nominal location at which to perform a deposit. While the depositor remains substantially at the nominal location during time intervals 2241, 2242 the depositor remains effectively stationary or within the bounds of nominal location ‘N’. While there, as shown by depositing action trace 2210, the depositor performs a material deposit action as indicated by a pulse 2205 in time interval 2241. After this depositing action and during interval 2242, the success of the deposit and, optionally, the conditions of the process may be assessed as described in steps 2116 and 2122 of process 2100. At time 2251, upon sensing a successful deposit and no conditions warranting a delay, the location of a next deposit ‘N+1’ is obtained from the sequential list (returning to step 2110).

Then, during time interval 2244, trace 2220 reflects that the system moves the depositor to location N+1 and comes to a stop there, whereupon another depositing action occurs during time interval 2246 and another assessment is done to assess the success of deposit ‘N+1’ during time interval 2248 before moving on to yet other deposits.

Turning now to FIG. 22B, a slightly different situation is presented which may correspond to the action of steps 2124, 2126 in process 2100. Whereas most of the timing features are analogous to what was shown in FIG. 22A, FIG. 22B specifically includes an additional waiting period 2280 between time intervals 2244 and 2246. As described earlier, this added delay (implemented by step 2126) effectively increases the time delay 2482 between deposits which, in practical terms, may allow the part under construction to cool somewhat before continuing to add more heat-imparting deposits.

FIG. 22C shows an alternative timing which may offer efficiency in some circumstances. FIG. 22C depicts that the assessment of successful material deposit at location ‘N’ may occur while the system is moving the depositor to a next deposit location ‘N+1’. For a system that is mostly reliable in making successful deposits and for which a need to introduce delay due to thermal considerations is unlikely, the simultaneous assessment and movement of the depositor to a next location may offer considerable time efficiency, as noted by shortened interval 2284 between depositing masses of material onto the workpiece. Time interval 2288 represents consecutive execution or combination of intervals 2242, 2244 that were executed sequentially in FIG. 22A. In comparing FIG. 22C to previous timing diagrams, the time interval 2284 between deposits is notably shorter than time intervals 2204 and 2282. Although some deposit mechanisms can exhibit instantly detectable successes/failures (such as a ‘misfire’ or misfeed in a CMT process), there can be an additional need for visual or thermal confirmations, some of which take time or require the depositor to move out of view before the observation can be made. The trade-off with overlapping the actions of moving and assessing is that, if a problem with the deposit at ‘N’ is detected that requires returning to that location, then additional travel time is incurred. Again, if this is a rare event, then the occasional impact on the overall build time is more than compensated by the shortening of interval 2284 over the majority of the build.

Finally, in FIG. 22D, a timing diagram is depicted for the situation that, as in step 2116 of process 2100, a fault is detected indicating that the material transfer did not occur successfully and is to be reattempted. In this diagram, a first attempt at the deposit occurs over time interval 2241 and the assessment of the success of the deposit occurs over time interval 2242. However, unlike in FIG. 22A, the determination corresponding to step 2116 is that the mass deposit was unsuccessful and there is a need to reattempt. Under these conditions, step 2118 would be undertaken to take corrective action, as appropriate, to prepare for reattempting the material deposition. Executed next, step 2114 corresponds to reattempting depositing action (presented by pulse 2290) followed by reassessment over time interval 2292. If the reattempt is detected as successful, then the logic of process 2100 simply results in continuing to make other deposits as planned according to the time-ordered sequential list by the execution of steps 2110 and so forth.

Referring now to FIG. 23 of the drawings, three different scenarios are shown to explain how a time-ordered sequential list may be manipulated to control the delay between material deposits in a specific locality and, by doing so, effectively control temperature or other characteristics during a build process. In FIGS. 23A-23C, an example group 2310 is shown to comprise four voxel locations, labeled ‘A1’, ‘A2’, ‘B1’ and ‘C’, as defined in the context of a pattern 2304. These voxel locations are eventually filled with material but over different time spans. Specifically, in a first scenario shown in FIG. 23A and with reference to sequential list 2320, locations ‘A1’ and ‘A2’ are depicted as being deposited consecutively in sequence before the depositor moves on to, for example, 86 other locations before returning to provide material into voxel location ‘B1’. This may represent a typical or default ordering similar to that depicted in FIG. 16 .

In FIG. 23B, the same voxel locations are eventually filled as in FIG. 23A, but sequencing between these and other voxel's fills achieve a distribution of energy injections over a longer period of time, as might serve to keep the vicinity of group 2310 from reaching an undesirably high temperature. As an advantage offered according to the present teachings, changing to sequence 2321, as a reorganized version of sequence 2320, the temperature profile within the vicinity of these four voxels can be adjusted. In this case, the conveyance of matter (and heat) to fill voxel location ‘A1’ is followed by deposits at 16 other locations outside the vicinity before filling of the ‘A2’ voxel location. This may be followed by deposits at 122 other locations before returning to the ‘B1’ location. This insertion of additional waypoints may be accomplished by, for example, rearranging among the ‘B’-designated locations so that ‘B1’ is not necessarily the first ‘B’ voxel location at which a deposit will occur. The net effect is that the peak temperature in the vicinity of group 2310 will likely be lower using modified sequence 2321 than when executing original sequence 2320.

To demonstrate the opposite effect, FIG. 23C depicts an extremely short turnaround time for filling the same group of voxel locations, wherein locations ‘A1’ and ‘A2’ are deposited consecutively (but are still spatially non-adjacent) and then only two other voxels are deposited before returning to deposit into voxel space ‘B1’. This alternative sequence 2322, again a rearrangement of sequence 2320, results in a high delivery of heat energy into the vicinity over a short period of time, which may be desirable under some circumstances.

Considering all of the pairings of consecutive deposit instructions in an ordered list, it is preferred that any candidate rearrangements exhibit an acceptable proportion or percentage of ‘non-contacting’ pairings wherein the respective voxel spaces do not intersect or share any common faces, implying also that any materials filling these voxel spaces by consecutive discrete deposit actions do not make physical contact. Even with possible constraints imposed by part shape and thermal management, the percentage of non-contacting pairings of consecutive deposits should be maximized during rearrangement. In accordance with preferred embodiments, the percentage of non-contacting pairings achievable by rearrangement should reach ranges such as 50% to 100%, 60% to 100%, 70% to 100%, 80% to 100%, 80% to 90%, 80% to 95%, 90% to 100%, 95% to 100%, 97% to 100%, 99% to 100% and 99.9% to 100.0%. As an alternative assessment related to the distancing of consecutive deposits, each ‘non-contacting pairing’ may be defined by identifying vicinities around each of the respective voxel spaces bounded by a boundary distance ‘D’ from the nominal location of each voxel space and then determining that non-contacting pairing when the distance between the nominal locations is greater than three times the boundary distance ‘D’. Under this definition, the percentage of non-contacting pairs achievable by sequence rearrangement are comparable to the ranges listed above. Any computer or data processing context set forth herein may host a process for performing a rearrangement of deposit instructions as just described and the process may be encoded as software and embodied as one or more computer programming code segments present in non-transitory computer-readable media. Computer programming code segments residing on the non-transitory computer-readable media may also provide logic for invoking the rearrangement under conditions explained herein.

If the output of a masker 76 and sorter 78 has created an initial sequencing in which, for example in FIG. 23A, there is a moderate frequency with which the vicinity of group 2310 is touched by energy-delivering material deposits, it may be possible to re-sort the time-ordered sequential list more in accordance with sequence 2321 to alleviate excessive local temperatures or in accordance with sequence 2322 to enhance heat concentration, such as in areas where excessive cooling may create stresses in the part. The flexible resequencing of the list of deposit locations as just described provides unprecedented control over both the finite number of distant locations that are interposed between vicinal deposits and the deliberate time delay between discrete deposits, enabling fine control of temperature distribution over a layer as it is deposited. As will be explained later in connection with FIG. 33 , it may be possible to reevaluate and rearrange the sequential list before an actual build occurs, by using modeling and simulation of heat flow to anticipate potential temperature related issues. Moreover, an initial sequential list of deposition locations may also be evaluated and re-sequenced dynamically during a build process based on real-time observations, such as thermal imaging. (This was described in conjunction with step 2122.)

This attribute of flexibility is further illustrated with reference to FIGS. 24 and 25 . FIG. 24 shows an array of voxel locations 2404 and, for the purposes of this example, it is assumed that all of the voxels shown are to be filled in the course of building a layer of part. Superimposed on this sketch are isotherms bracketing temperature ranges as may be either predicted through a simulation model or as may be determined by actual observations (infrared imaging) during the course of a build. For example, a first isotherm 2416 may represent a lower temperature transition that is within a desirable range for the workplace. Isotherms 2414, 2412, 2410 may depict the presence of escalating temperatures around a ‘hotspot’ inside isotherm 2410. The close spacing of isotherms along some directions also indicate steep temperature gradients, such as in the vicinity of the voxel labeled ‘38’. A number of specific voxels 2420 (those labeled with a sequence number or with an asterisk) are identified as falling within the hotspot region encompassed by isotherm 2410 and, for illustrative purposes, it is presumed desirable to mitigate this anomalous region of high temperature buildup. As mentioned before, part of the high temperature buildup could be caused by previous layers of the build or by external heating influences. Some influences are not necessarily attributable to the original sequencing or are not necessarily foreseeable before the actual build takes place. Nevertheless, the sequence being used to build the layer by filling voxel locations indicated by array 2404 can be purposefully altered to respond to or compensate for the excessive heat buildup observed within isotherm 2410. The numbers within certain voxels in FIG. 24 depict the sequence within the time-ordered sequential list as may have been originally provided from sorter 78.

FIG. 25 depicts the same layer being built, and the same voxel locations being addressed, as in FIG. 24 but with the sequencing modified to improve the thermal issue that was evident in FIG. 24 . It is noted that, for six of the specific voxels within the problematic range encompassed by isotherm 2410, the filling of these voxels is delayed and distributed geographically. The heat buildup within this vicinity is alleviated by effectively distributing these deposits both temporally and spatially. (The remaining voxels denoted with asterisks could be re-sequenced as well but are disregarded to keep the current explanation simple.) In FIG. 25 , redrawn isotherms 2516 and 2514, representing like temperatures as isotherms 2416 and 2414 respectively, reflect a reduction in steep temperature gradients that were present in FIG. 24 . This curative measure is a direct result of re-sequencing the order in which discrete deposits occurred in this area. It is worth noting that ultimately all of the same voxel locations would be filled in FIGS. 24 and 25 but the thermal characteristics will have been managed by re-organizing the sequence of deposits.

One contemplated mechanism for resequencing is culling out specific voxels that are in problematic areas and simply moving them to the end of the sequential list and performing them after the remainder of the voxels have been filled. Among these transplanted instructions, re-sorting or delay could be imposed if they happen to be too close physically. Another possibility contemplated is to place specific deposit locations later in the sequence but to favor re-inserting each deposit location at a position in the existing sequence when the depositor happens to approach the vicinity of the displaced deposit location while addressing other originally scheduled voxel-filling instructions.

Many algorithmic approaches are contemplated for performing rearrangement of instructions in the sequential list and arriving at a suitable final sequencing, whether fully composed before a build, retouched during a simulation or modified in the midst of an ongoing build. An intuitive, goal-driven rearrangement, as was conceptually depicted in FIGS. 24 and 25 , may certainly accomplish the desired end result under many circumstances. Alternatively, a mathematical analysis may be performed that assigns a weighting factor to each voxel that is influenced by proximity to recent deposits and by having an optimal proximity to a current location of a depositor device. In particular, considering the need to avoid adjoining deposits in consecutive order while also matching location-to-location travel time to a nominal planned delay between deposits, next-location candidates may be more favorably weighted if they fall within a particular distance of a current location. For some layers of some parts, the contours may favor a point-to-point traversal path that resembles what may be colloquially termed a ‘spirographic’ pattern. Other contours may be best handled by a ‘chess knight’ traversal pattern familiar in mathematics.

Yet other techniques for evaluating possible sequences and more effectively reaching a ‘global optimum’ over a layer or entire build may rely on a more stochastic or probabilistic approach. A general ‘goodness’ score can be assessed (for example, based on reduced build time and improved compliance with a thermal profile) for a proposed arrangement of deposit instructions, and then myriad re-arrangements can be tried to reach an optimal or acceptable score. Some techniques may start from complete randomness, whereas others may start with the organized list produced by sorter 78. The explorative algorithms or heuristics may then perturb the starting arrangement with minor changes and recalculate the score, systematically testing a large number of sequences in constant pursuit of a ‘better’ alternative sequence having an improved score. In some techniques, a trend in improved scores may be detected to result from a certain pattern of action, such as concentrating deposit occurrences in a particular place and time. Once this phenomenon is recognized, an iterative goal-seeking algorithm or genetic algorithm may continue to explore adding other similar alterations until no further score improvement is achieved.

In conventional extrusion or welding type additive manufacturing systems, a material-depositing element, such as an extrusion nozzle or a wire welding tip, may be used to place a continuous bead of a build material on top of a previously formed layer, with additional feedstock being transferred through the material depositor as it is moved laterally along the top of the previously formed layer.

For building large parts, one may desire to engage multiple, independently-moving robotic depositor subsystems to operate collaboratively and with overlapping ranges of motion. This has been difficult to achieve in practice with linear extrusion systems, where the emphasis has been on bead continuity and steady, uninterrupted motion to assure contour adherence and part strength.

However, by virtue of using discrete, sequenced deposition events to make ‘near-net’ blank parts, the isolable tasks of filling each planned voxel space to fill a layer may be readily delegated among multiple material depositor subsystems. Sequencing of reaches into shared spaces can be freely coordinated (because of the ‘granularity’ of discrete deposit scheduling) or interleaved in the time domain without the constraints imposed by linear motion and bead continuity.

Moreover, the apportionment of voxel-filling responsibilities among two or more overlapping material depositor subsystems can be shifted, either (a) before a part build based anticipated thermal behavior or stresses as simulated using finite element analysis, or (b) dynamically during the part build based on real-time thermal observations as deposits add heat to the part. This shuffling of ‘which effector handles which voxels’ can provide additional control of part temperature profiles. For example, as a first material depositor may shift to more frequent discrete deposit events to maintain temperature in a given vicinity, adjacent effectors may take on added duty for filling voxels that were within a shared reach domain with the first effector, effectively offloading some burden from the first effector and optimizing the total build time for the part. Alternatively, assuming a region of the build that needs more frequent deposit events to maintain a desired temperature happens to be within reach of multiple material depositing subsystems, those subsystems may share the burden of frequently addressing voxels (thereby injecting heat) within the region while also tending to their respective tasks of filling voxel spaces outside of the commonly-accessible region. As yet another advantage, the use of multiple effector systems operating in a common space enables interspersing and gradient-building involving multiple materials or alloys.

FIG. 26 is a diagram of a multi-arm control system 2600 for coordinating the action of multiple independently moving subsystems that may each move to specified locations within the build environment and deposit material in the manner described above, such as in FIG. 20 . FIG. 26 depicts a central coordinator 2610 (or ‘central controller’) that is shown to be in communication with multiple subtending subsystems 2620 a through 2620 c. Each of the subtending subsystems may comprise a system of mechanical linkages bearings and motors forming a SCARA-type robotic arm movement as was described earlier. Each of the subtending subsystems 2620 a through 2620 c may comprise a dedicated controller CPU or may be implemented as processes or threads running within the same physical processor or computing platform as central coordinator 2610. In general, each subsystem will perform the actions depicted in FIG. 20 and be operating with a motion controller that controls a specific one of the plurality of independently moving effector arms that form the overall build system and which collaboratively act to form a blank part. Central coordinator 2610 may create and maintain sequential lists, resembling list 1600 explained in FIG. 16 , and may maintain a separate sequential list or queue for each of the subtending subsystems. In an example embodiment, central coordinator 2610 will preferably dole out single or small groups of deposit location instructions from a set of internally maintained queues 2612. By limiting the number of instructions sent to each subsystem at any given time, central coordinator 2610 may control the pace at which the subsystems work collaboratively to complete a build process or a layer thereof. While several architectures for such a platform are possible, the particular implementation shown by way of example in FIG. 26 shows what may be termed a centralized or ‘hub-and-spoke’ arrangement organized around a central controlling entity, but other arrangements or architectures are envisioned involving peer-to-peer coordination, especially among subsystems that have overlapping reaches into the build space.

Where each subsystem is shown to be communicably linked with central coordinator 2610, this may literally correspond to data communications links or may represent inter-process communications among processes hosted within a common processor or a community of linked processors. The communications from central coordinator 2610 to, for example, subsystem 2620 a are represented as downlink 2630 by which central coordinator 2610 may convey deposit location instructions that are specific for that subsystem. An uplink 2632 is also depicted as a direction of communication by which each subsystem may report its operational status or indicate its readiness to receive a next deposit location instruction. Central coordinator 2610 may be said to execute, host, perform or encompass any of the processes depicted elsewhere herein, including the processes that divide an overall list of deposit locations for a build or a build layer into respective per-subsystem queues. Central coordinator 2610 may generally monitor the operational status and per-deposit success of each of the subsystems. Central coordinator 2610 may act upon one or more sequential lists of deposit locations such as by adjusting delay times between deposits, dynamically re-sequencing of deposits location lists or reassigning certain voxel among subsystems to improve build efficiency and resiliency to faults arising during a build. Central coordinator 2610 may also provide an end user interface or ‘dashboard’ which may include build time estimates that are updated as a build proceeds and may be affected by delays introduced by thermal characteristics, emerging conditions or occasional misfires or the need to change out tool tips or feedstock materials.

As shown in FIG. 26 , central coordinator 2610 may comprise, or communicate with, a console, display or some form of user interface 2640 which may serve as a means for an operator of the system to control the system, to prepare the system to perform a selected build process and to monitor the operational status of the system as the build proceeds. Through user interface 2640, central coordinator 2610 may display the progress of the build and display an estimated time for completion of the build, which may need to be refreshed as conditions change during the build due to delay-causing fault conditions and speed changes necessitated by observed thermal conditions.

Central coordinator 2610 may comprise, host or have communications access to a build timer 2615 that steadily increments a count representing the passage of time. Build timer 2615 may be reset or initialized by the central coordinator 2610, such as when a build process is commenced. Build timer 2615 is available as a general timing reference and may be used, as described later herein, to compare with stored or calculated ETA values for specific deposit events. Central coordinator 2610 may compare expected deposit times, expressed in terms of time offset from the beginning of the build, to the value of the build timer as the actual build process progresses. As will be shown, build timer 2615 plays an important role in assuring synchronization among the independently moving subsystems.

Build timer 2615 may increment according to any arbitrary time unit, including seconds, milliseconds, microseconds or any non-standard intervals such as periodic pulses from a free-running electronic resistor-capacitor (RC) oscillator or a crystal-regulated oscillator or external time base. Build timer 2615 may be implemented as a data location in memory within a computing platform hosting other functions of central coordinator 2610 and may be incremented by software processes that are somewhat dependent on the clock frequency of the processor or the incrementing of the timer value may be interrupt-driven by an external time base. Because ETA values for deposit events are to be compared to build timer values as a build proceeds, it is preferable that the resolution and format of these time values are compatible. Furthermore, if the frequency of incrementing build timer 2615 were to change, then the time interval between deposit events would change proportionally. In general, built timer 2615 will conform to a steady, standard time period between increments, such as milliseconds or tenths of seconds, and any planning of deposit frequencies, especially where deposition rates and thermal responses have been simulated beforehand, will be predicated on build timer 2615 operating during a build process just as it was presumed to operate during the simulation. Although, build timer 2615 could be implemented as a simple event counter that counts sequential deposit events independently of time, the reliance on time is considered preferable in support of time-sensitive thermally-significant deposit schedules. Collision avoidance logic explained below is also dependent on time, as such, due to the movement speeds, acceleration/deceleration profiles and inertial characteristics of the robotic arm subsystems.

FIG. 27 is a pictorial depicting an arrangement of two independently moving robotic effector arms 2710, 2730, as may correspond to a pair of the subsystems that were shown in FIG. 26 . (This may be usefully regarded as an ‘overhead view’ even though the build space and robotic arm subsystems may conceivably operate at any orientation with respect to gravity and may not be confined to strictly co-planar arrangements.) Effector arms or ‘robotic arm assemblies’ 2710, 2730 are designed to precisely move their respective effector tips 2715, 2735 to specific locations. Each effector tip may be equipped, for example, to execute single-mass transfer deposits as described above and to operate within build space boundaries 2706 and 2708 to construct an object or blank part, represented as the hypothetical outer shape partially depicted by outline 2740. Of course, many arrangements are possible with arms that involve a greater number of degrees of freedom, that exhibit longer or shorter reaches than depicted here, that employ a greater number of arms covering a different size or shape of overall build area or that feature arms exhibiting a different degree of overlap or redundancy in the reach to each voxel location within the build space. In some physical configurations, certain voxel locations may be within reach of two or more effector arms. For simplicity, only two effector arms are shown for describing some of the salient features of contemplated embodiments and for facilitating discussions of processes later in the description. Arm assembly 2710 comprises a first arm member 2712 (comparable to ‘first arm 30’ shown in FIG. 1 ) which is coupled to, and pivots about, an anchored pivot 2711 (see ‘A1’ in FIG. 1 ) having a fixed location with respect to the build space. At the distal end of first arm member 2712, a second arm member 2714 (see ‘second arm 32’ of FIG. 1 ) is rotatably attached via second pivot 2713 (see ‘A2’ in FIG. 1 ). The far end of second arm 32 supports the effector end tool, represented by effector end tip 2715 (In FIG. 1 , see ‘weld gun 24’ depicted as moving vertically aligned with axis ‘C1’). Motors such as servos, stepping motors or linear motors (though not explicitly shown) may be coupled to cause a controlled change in angles ‘Θ’ and ‘Φ’, which moves the effector tip 2715 to numerically-specified locations within build space defined between boundaries 2706 and 2708. Typically, upon a command for robotic arm 2710 to perform a deposit, such as by single-mass transfer, at a specific location, controlled pivoting would occur around the rotational axes of pivots 2711 and 2713 to bring the coupled effector tip 2715 to the specific coordinate location, such as location 2760, that is within reach of arm 2710.

Based on the anchored location of pivot 2711 relative to the build space, the maximum ‘reach’ of robotic arm assembly 2710 is depicted by dotted line 2717, which outlines a region within which effector tip 2715 can be moved and actuated to deposit material. Whereas dotted line 2717 shows the limits of where effector tip 2715 can reach, a second dotted line 2718 represents an additional margin by which robotic arm assembly 2710 physically extends beyond the effector tip. This is important to consider as two robotic arms may suffer a collision even without aiming for the same effector tip location. Depending on the shape of the robotic arm assemblies and of the sizable deposition energy sources, tip actuators, material feed channels, cover gas delivery systems etc. each arm assembly may require a significant additional ‘safe distance’ margin surrounding the effector tip.

For robotic arm assembly 2730, which comprises analogous components and involves comparable operating motions as was described for assembly 2710, a separate dotted line 2737 depicts the region reachable by effector tip 2735 and dotted line 2738 shows the corresponding additional margin that must be allowed for clearance around other protruding parts of the assembly 2730 as it extends the effector tip 2735 to locations approaching dotted line 2737. As an important observation from FIG. 27 , the readily apparent overlap of areas encompassed by lines 2718 and 2738 implies that robotic arm assemblies 2710 and 2730 could collide unless they are operated in a coordinated manner.

To illustrate this point with a specific scenario, several deposit locations, exemplified by deposit location 2760, are shown scattered within the build space and labeled as ‘J1’ through ‘J5’, for locations slated to receive deposits from assembly 2710, and ‘K1’ through ‘K5’, for those locations to be handled by robotic arm assembly 2730. (The scattered distribution of these waypoints is consistent with the principles described earlier in conjunction with FIGS. 19, 20, 23, 24 and 25 .)

Parenthetically, a partial hexagonal pattern 2704 is shown in FIG. 27 as a reminder that the locations to which robotics arm assemblies 2710, 2730 will be directed in the course of filling the part outline 2740 may correspond to voxel locations that were established for the particular outline as described in FIGS. 18 and 19 . However, it is important to recognize that pattern 2704 is not a fixed set of hexagonally-arranged locations imposed by the machinery of the robotics arm assemblies but is instead based on the spacings and alignment decided by functions such as cell generator 74 and masker 76 described earlier. Generally, robotic arm assemblies 2710, 2730 are physically capable of moving their effector tips to any ‘XY’ location within their reach and often within a far finer resolution (<0.1 mm) than a nominal voxel size (5-10 mm).

To accompany the explanation of a potentially problematic scenario, FIG. 28 presents a pair of sequential lists, shown as excerpts 2810, 2830 thereof, corresponding to the labeled deposit locations shown in FIG. 27 for instructing robotic arm assemblies 2710 and 2730, respectively. As described in connection with FIG. 16 earlier, each record 2840 in either list is shown to comprise a point name field 2805, an XY location field 2806 and an optional ETA field 2812. (Other fields originally depicted as part of record 1640 may be present but are excluded here for clarity.) Indicated as ‘optional’, ETA field 2812 may be present as a data value stored in the structure of each record 2840 with some degree of persistence or may be transiently calculated, rather than stored as such, in the course of assessing collision risks by the process described next. Regardless of whether stored in record 2840 or calculated as needed, the ETA (estimated time of arrival) value is a time offset, within the duration of the build, at which each given deposit is anticipated to take place. Owing to the style of discrete movements to, and impulse deposition of material at, scattered locations in accordance with the present teachings, a very specific time can generally be associated with each such deposition event, in a manner that would be atypical or inapplicable in controlling a continuous deposition of a bead along an elongated linear or curved path.

The remaining features of FIG. 28 are explained in the context of FIG. 29 wherein process 2900 acts to receive and interpret sequential deposit location lists represented by excerpts 2810, 2830 and to determine whether there is a risk of collision or conflict between the corresponding robotic arm subsystems 2710 and 2730 if they proceed according to the prescribed deposit locations and timings.

Process 2900 commences at step 2902 upon the designation of two specific robotic arm subsystems to be considered and the need to detect possible collisions among them based on their physical configuration and instruction lists. Execution immediately continues with step 2904 in which a mutual region of overlap is identified. Referring to FIG. 27 , the overlap region 2780 would be defined by the region encompassed between the clearance needed by robotic arm assembly 2710, as indicated by dotted line 2718, and the clearance needed by robotic arm assembly 2730, as indicated by dotted line 2738. This region may be calculated by considering the distances between the anchored pivot points 2711, 2731 of the two assemblies and the maximum reach radius of each, plus the clearance margins described earlier. In this simple case, overlap region 2780 is circumscribed by the two arcs traced by the maximum radial reach of each arm rotated about the respective pivot points 2711, 2731. Of course, the extent and shape of the overlap region may vary for different mechanical geometries and different relative positionings of the arm assemblies.

In step 2906, time-ordered lists (designated ‘J’ and ‘K’ for convenience) are obtained which, for the respective subsystems identified in step 2902, describe the locations at which deposits are to be made and at what times. Excerpts 2810, 2830 represent portions of the lists provided in step 2904.

Next, in step 2908, each record 2840 in the sequential list represented by excerpt 2810 is reviewed and compared to the boundaries of the overlap region identified in step 2904. A simplified list 2820 is compiled in which each record represents the time of entry of the first robotic arm into the overlap region as indicated by a time value in field 2822 as well as a time at which the first robotic arm moves out of the overlap region in field 2824. With reference to FIG. 27 , locations labeled ‘J91’ and ‘J92’, which are shown to be taken in sequence within list excerpt 2810, both fall outside of the overlap region 2780 that is encompassed between dotted lines 2738 and 2718. These two deposit locations are outside of overlap region 2780 and therefore do not, by themselves, indicate a potential for collision between robotic arm assemblies 2710 and 2730. However, at the next deposit location, labeled ‘J93’, it is evident in FIG. 27 that this point involves entry of or movement of robotic arm assembly 2710 within the overlap region. Referring now to excerpt 2810 in FIG. 28 it is shown that the deposit location labeled ‘J93’ occurs at an anticipated timestamp of 38 minutes, 15.2 seconds into the build process. Therefore, a record is created and populated within the compiled list 2820 showing that the first robotic arm enters the overlap region at a timestamp of 38 minutes, 15.2 seconds. It is also evident in FIG. 27 and in excerpt 2810 that subsequent point labeled ‘J94’ falls outside of overlap region 2780 and, accordingly, the timestamp associated with point ‘J94’ is entered as the time that the first robotic arm 2710 would move out of overlap region 2780 and this is recorded as time value 38 minutes, 17.7 seconds within field 2824 of list excerpt 2820. This conversion of raw sequential times into a shorter list of entry and exit times facilitates subsequent comparisons of lists among multiple robotic arm assemblies that might overlap in pairs, triplets or larger groupings. In step 2910 of process 2900, the process just described is repeated for the second robotic arm subsystem identified in step 2902 and achieves the conversion of sequential timings in excerpt 2830 into a series of entry and exit time listings 2860 as shown in FIG. 28 .

In addition to the simplification or conversion of sequential lists of deposit locations into summaries of entry and exit times (lists 2820, 2860), an additional step 2912 is preferably applied to the data in list excerpt 2820 to provide for a margin in the time axis. In step 2912, a buffer time value is applied to the derived entry and exit times shown in fields 2822 and 2824, effectively expanding the apparent duration for which the first robotic arm assembly is within the overlap region. In this example, the time at which the first robotic arm is directed to enter the overlap region is adjusted by 1.5 seconds earlier and the time at which the first robotic arm assembly leaves the overlap region is augmented or adjusted to 1.5 seconds later. The buffer time of 1.5 seconds is arbitrary and may conceivably be adjusted depending on the attributes of the overall system, the subsystems and the operating speeds expected. By selecting a buffer time of 1.5 seconds, one is effectively instructing process 2902 detect any situations when two robotic arm assemblies will pass within a given proximity within a certain timeframe. In response to this detection of a near collision, additional analyses may be made to determine whether the overlapping times correspond to a certain collision, a high risk of collision or an acceptably low risk of collision. In some implementations, a time buffer of only a few milliseconds may suffice or time buffering may be unnecessary if sufficient measures are exercised in spatial margins and tool path planning to avoid collisions. By analyzing and perhaps modifying the exact tool paths of the respective robotic arm assemblies the identified collision possibility may be mitigated. It should be noted that, in comparing the timed deposit locations represented by excerpts 2810 and 2830 and compiling entry/exit time lists therefrom, it is only necessary to augment the time fields for one or the other of the robotic arm assemblies because where the data shows the two arms to be in proximity at approximately the same time it does not matter which of the two data sets is expanded in time—the same proximity in time and space will be detected in either case.

Whereas steps 2904 through 2912 have been preparatory in providing extracted data derived from the lists of deposit timings ‘J’ and ‘K’, the remainder of the steps in process 2900 pertain to performing actual collision detection calculations on the derived lists 2860 and 2850.

In step 2914, the intervals expressed in derived list 2850 are compared to each of the entry times 2842 and exit times 2844 within derived list 2860 to see if either of these fields in list 2860 fall between paired values 2852 and 2854 in list 2850. If this condition is found for any of the entries compared in step 2914, then step 2916 acts to branch the execution to reporting of the likely collision in step 2926, whereupon process 2900 may be concluded, signified by step 2928.

Returning to step 2916 if none of these fields listed in list 2860 have values that fall within the intervals indicated by each line item of list 2850, then step 2918 is undertaken to again compare list 2860 and list 2850 but in a reverse sense. Step 2918 corresponds to examining a value in each field 2852 and 2854 with respect to each interval expressed by each line or record in list 2860 to determine if either value in field 2852 or field 2854 fall within the limits of interval expressed between the values in fields 2842 and 2844.

Though similar, the actions in steps 2914 and 2918 are complementary and not redundant. The comparison of step 2918 detects movement of the first robotic arm subsystem into and out of overlap region 2780 within an interval of time when the second robotic arm assembly remains within overlap region 2780—in a way that would not be detected by the logic of step 2914 alone.

Similarly to step 2916, step 2920 is then performed to alter the course of execution based on whether any of the entry or exit times in list 2850 fall within any of the intervals in list 2860 and to report any such affirmative findings as possible collisions in step 2930. Depending on implementation, process 2900 may then halt further processing (step 2928) or append the affirmative finding to an overall list or report and continue searching for other collision risks by repeating the action of steps 2914-2920 for the remainder of the entry/exit timings. The logic presented in FIG. 29 assumes that process 2900 concludes upon the first finding of a collision possibility but other implementations are possible. As an alternative, process 2900 may detect and record point names or time offsets at which collisions seem to be imminent and append this information to a report of all possible collisions given the context of the two identified first and second robotic arm systems, their relative clearance thresholds and the respective sequential lists that schedule their movements to specific locations over time.

Returning to step 2920, if it is determined that none of the entry or exit times listed in derived list 2850 fall within intervals expressed in list 2860 then, in step 2922, it may be reported that no collisions are detected among the two robotic arm assemblies if they are instructed according to the time-ordered lists that were provided in steps 2906 and process 2900 concludes in step 2924.

FIGS. 30A-30F are timelines depicting temporal relationships between the reach of two robotic arm assemblies into a region of mutual overlap and possible actions to resolve timing conflicts that may constitute collision risks. (In FIGS. 30A-30F, traces 3010 a-3010 f are analogous and traces 3020 a-3020 f are analogous.)

In all of FIGS. 30A-30F, time proceeds along the horizontal axis and an upper trace, such as trace 3010 a, represents, at a given point in time, whether the first of the robotic arm assemblies is positioned outside of an overlap region (by upper trace 3010 a aligning with first level 3011) or is positioned inside of the overlap region as indicated when trace 3010 a shifts to a second level 3012. For example, in FIG. 30A, the first robotic arm assembly is indicated as operating within the overlap region over a time span 3031 and over another time span 3033, whereas at time span 3032 this arm assembly performs deposits outside of the overlap region.

Each figure also depicts a second trace, such as lower trace 3020 a, expressing, at a given point in time, whether the second robotic arm assembly is outside of the overlap region (by lower trace 3020 a aligning with third level 3013) or is positioned inside of the overlap region as indicated wherever lower trace 3020 a moves into alignment with second level 3012. In FIG. 30A, lower trace 3020 a exhibits transitions to show that the second arm will be within the overlap region within at least one time span 3034 and then remain out of the overlap region over time span 3035.

By presenting the actions of both arms in this manner, it becomes visually apparent, as when both the upper trace and lower trace are simultaneously at the second level 3012, whether the first and second robotic arm assemblies will be ever commanded to be in the overlap region at the same time. This manner of presentation will assist in explaining various adaptive actions that may be taken while controlling multiple robotic arm assemblies to execute a build process using discrete depositions, including single-mass transfers.

As an additional feature in these figures, the transitions of upper trace 3010 between the outward or inward states (shown by levels 3011 and 3012) are depicted as hashed bands rather than singular lines, with the width of the hashed bands representing the temporal margin or buffer time comparable to the augmentation explained for step 2912. (As stated earlier, this time-domain ‘guard band’ could be applied to either trace alone or could be halved and applied to both.)

In FIG. 30A, it is evident that, although both the first and second traces shift to the second level 3012 at some point along time axis 3001, these traces are not at level 3012 at the same time. Hence, no collision among the first and second arms is expected and FIG. 30A represents the desirable circumstance of interlaced, non-coincident incursions into the shared overlap region.

FIG. 30B presents paired timelines 3010 b and 3020 b under a condition that the first robotic arm assembly incurs an unexpected delay 3030 that shifts the ETA values for subsequent deposits from that assembly, including ETAs for some deposits that would call for the first robotic arm assembly to enter the overlap region shared with the second robotic arm. As explained earlier, a given subsystem can occasionally encounter a ‘misfire’ or problem with raw material feed that introduces a brief delay. In other instances, monitoring of temperature conditions may call for a momentary delay 2280 as was described in connection with FIG. 22B. In particular for this example, the delay may cause a time span 3036 over which the first arm is planned to operate within the overlap region to come into conflict with time span 3039 during which the second arm was to operate within the overlap region. The original timing of the incursion shown during time span 3036 did not pose a conflict until the unexpected delay 3030 shifted the timing of the subsequent deposits for the first arm. By reviewing the tabular form of the sequential deposit location lists using process 2900, with the ETA values for the first arm having been updated in response to the unexpected delay, the newly created conflict, evidenced by overlap duration 3038, would be detected at least by the action of steps 2914-2916. Given the relatively minor degree of conflict indicated by overlap duration 3038, one way to alleviate the conflict would be to introduce a single delaying event in the action of the second robotic arm assembly as it performs deposits within time span 3041 or to generally slow the pace of all deposits to be made by the second arm over this time span.

FIG. 30C resembles FIG. 30B but depicts a more severe timing conflict arising from the unexpected delay during operation of the first arm. Trace 3010 c may differ from the corresponding trace plotted in FIG. 30B because the original sequential list of deposit locations allocated to the first robotic arm happens to involve more deposits or some incursion durations may have expanded due to a resequencing of the original list. In this case, the time span 3036 over which the first arm is planned to occupy the overlap region substantially carries over into time span 3039 at which the second arm will also move within the overlap region. In comparison to the situation shown in FIG. 30B, a more significant compensating delay would need to be applied to the second arm to eliminate this conflict. However, such action may have consequences. If the deposit locations that the second arm is to address during time span 3039 are required to take place at specific times in consideration of temperature control (as described in FIG. 23 , for example), then shuffling the timing of these second arm deposits is undesirable.

Depending on implementation, a control methodology for deciding how to best resolve timing conflicts may be biased against disturbing a group of critically-timed deposit instructions. A weighting factor 1616 shown earlier as an optional part of record 1640 may be used within the sequential list of deposit locations for the second arm to signify these deposits as being time-critical and potentially impactful (or ‘costly’ in a sense) to relocate. Weighting factors may be adjusted by, for example, simulation and optimization processes that implement the types of control measures described in connection with FIGS. 22-25 . An algorithm assessing numerous possible solutions to the incursion conflict indicated between time spans 3036 and 3039 may be dissuaded from delaying or disbanding the group of second arm deposits as the weighting factors for those deposit locations may contribute to a prohibitively high overall cost metric for any solution that involves such a proposed relocation.

FIG. 30D reflects one possible solution to the conditions of FIG. 30C, especially considering that the second arm actions scheduled to take place in time span 3039 must adhere to a fixed schedule and are regarded as effectively immovable in the time domain. As indicated by upper trace 3010 d, the actions to have been performed by the first arm within time span 3036, which have no particular timing constraints in this example, become divided among a first time span 3042 and second, later time span 3043. Both time spans 3042 and 3043 avoid overlap region conflict with the actions specified for the second arm within time span 3039. During the altered time span 3044 for which the first arm remains out of the overlap region, the first arm may continue with productive deposit actions elsewhere. Comparing trace 3010 c to trace 3010 d, one may envision that a subset of actions (block 3047) originally scheduled to occur within time span 3036 in FIG. 30C have been transplanted and appended to time span 3046 within a consolidated time span (3043 plus 3046) and that other actions to have been performed by the first arm outside of the overlap region within time span 3045 are re-sequenced to occur earlier, coinciding with the time that the second arm must occupy the overlap region.

FIGS. 30E and 30F present ‘before-and-after’ timing scenarios involving reassignment of some deposit locations among first and second robotic arms. Where two or more robotic arms can reach a common region of overlap, it may be possible and advantageous in accordance with the present teachings to reallocate or reassign the responsibility for filling a given voxel space or deposit location from one arm subsystem to another. This may be done in view of load balancing to achieve a reduced overall build time. In various embodiments, the transfer of deposit locations from the first arm's sequential list to the second arm's list may take place during a pre-build planning or simulation phase and/or dynamically during a build process in response to observed thermal conditions, for example. The need to reassign deposit locations may also arise when a first subsystem encounters a malfunction and falls behind on performing its originally assigned deposition tasks. In effect, one or more other robotic arm subsystems may apportion their activity to offload some responsibilities from the first subsystem so that the impact of the malfunction on overall build time is reduced. This exceptional flexibility and agility in assigning deposit locations among multiple effector arms is a notable benefit facilitated by the non-continuous deposition aspect of the present teachings.

In FIG. 30E, the first arm is assumed to be heavily burdened with deposition tasks, perhaps due to the shape of a given part being built and the volume needing to be filled for a given layer thereof. The first arm may also be challenged with thermal issues, such as the need to either delay deposit and allow for cooling or the need to concentrate heat delivery in certain areas, requiring frequent deposits in a given area. In contrast, the shape of the part being formed or the presence or absence of thermal considerations may call for the second robotic arm to be only moderately busy over the time span 3049 shown. This imbalance in burden is depicted by a first series of tick marks 3055 which may indicate the occurrence or relative frequency of discrete deposition events for the first arm. A second series of tick marks 3056, pertaining to the relative frequency of deposition events for the second arm are spaced further apart, reflecting the disparity in deposition rates. Even though the second arm might simply execute more depositions per unit time (and assuming there are no thermal issues caused by doing so), this would not reduce the overall build time because the second arm might complete its queue and then sit idle waiting on the first arm to finish before the next build layer can be started.

If an area requiring more frequent deposits (for thermal or other considerations) is within the reach domain of the first arm but not the second arm, the first arm may be directed to maintain frequent deposits in the subject area while some of the first arm's assignments within the overlap region are reassigned to the second arm. Alternatively, if an area requiring more frequent deposits falls within a region where both arms can reach, the arms may be carefully coordinated to cooperatively address the heightened need without colliding.

In FIG. 30F, a portion of the first arm's deposit locations, represented by the incursion instance 3050 in plotted trace 3010 e, are shown to be reassigned to the second arm as indicated by incursion instance 3051 added along trace 3020 f (In this graphical depiction, the duration of incursion 3051 appears less than that of incursion 3050 because no temporal guard-time is added onto transitions for second arm location trace 3020 f.) This reassignment contingency is available for deposit locations that are within reach of the second arm, meaning deposit locations that are within the region of mutual overlap between the two arms. This reassignment relieves some burden on the first arm, as indicated by the relaxed spacing of tick marks 3057, while somewhat increasing the deposit frequency burden on the second arm indicated by tick marks 3058. This load balancing effect may result in an overall shorter build time, better thermal control and, if the first arm's hurried schedule is attributable to an unexpected delay or malfunction, better overall system resiliency in the event of operational interruptions. Note that, after reassignment, the first arm is then better able to perform clusters of frequent deposits into a given area within of its own domain, if needed, and may perform bursts of more closely spaced deposits as depicted by tick marks 3059. After this reassignment, the sequential list of deposit locations to be queued for the first arm is less constrained to undergo resequencing to achieve other objectives as described herein. The present teachings do not solely address or contemplate the one particular scenario shown by way of example in FIGS. 30E and 30F. Other situations could be encountered that warrant, for example, reassignment of discrete deposit tasks from the second arm to the first arm. Where even more robotic arms are active in a given system, it is conceivable that a first and second arm share a first region of overlap and that the second arm also overlaps with a third arm. When the first arm becomes heavily burdened, the second arm may receive additional deposit tasks that were originally designated for the first arm and then the third arm may handle some of the locations that fall within the later region of overlap. In effect, the third arm indirectly assists in addressing the first arm's burden. In yet another configuration, wherein the first and third arms also share a region of mutual overlap, tasks originally assigned to the first arm might be reassigned to either, or both of, the second and third arms, perhaps partitioned in proportion to their respective workloads and in consideration of any time-critical tasks they may already be handling.

If the deposit tasks transferred from the first arm to the second are not time-sensitive, the insertion point for the transferred tasks within the second arm's sequential list may be chosen based on when the second arm is already approaching the overlap region and will therefore incur minimal added travel time to include the added waypoints.

FIG. 31 depicts a generalized subroutine 3100 for performing corrective actions upon one or more sequential lists of deposit locations to alleviate the various issues in the manner just explained in connection with FIGS. 30A-30F. Such corrective actions may be performed to mitigate collision risks, improve load balancing among multiple robotic arms and reduce overall build time. The extent of action taken, mainly the degree of rearranging existing deposit location lists, is performed in gradations or ‘tiers’ that range from simply introducing pacing delays without any sequence rearrangement to full reassessment and resequencing of remaining deposit locations which may even include reassignment of tasks among different robotic arm subsystems. Subroutine 3100 may be executed, for example, by central coordinator 2610 as it provides ‘next deposit location’ instructions to various subsystems in the course of a build. Subroutine 3100 is designed to be invoked at various points in other processes, to be described below, that assess operating conditions reported to the central coordinator by one or more subsystems and determine whether the remaining deposit tasks scheduled to be performed require corrective action to be considered and implemented.

Subroutine 3100 is invoked by other processes that have detected a situation, such as an unexpected delay among one subsystem (as in FIG. 30B or 30C), that may cause a conflict. The role of subroutine 3100 is to decide the extent of corrective action to apply and then implement the action before returning execution back to, for example, the cyclic task of issuing deposit locations to subsystems and monitoring responses.

Subroutine 3100 commences in step 3102 when another process invokes subroutine 3100 because the calling process has detected an event that could impact expected times of deposit events and create a possible collision conflict or significant load imbalance among two or more robotic arm subsystems. The calling process may communicate, convey, or provide reference information leading to, context data specific to the request for tiered corrective action, such as pointers to data structures embodying the sequential lists of deposit locations (such as list 1600) for one or more robotic arm subsystems.

In step 3104, two or more sequential lists representing the planned actions for respective robotic arms are compared using process 2900 or the like to determine whether only a very minor issue has been introduced (as in FIG. 30B) or a more significant conflict has been caused (resembling FIG. 30C.) Upon gaging the severity of the conflict, such as by quantifying one or more overlap durations 3038, step 3106 represents the action of diverting to a minor treatment, in step 3108, wherein slight single-point delays or re-pacing of deposit timings are applied to one or more subsystems by, for example, modifying the ETA fields 1612 or other parameters in their respective sequential lists. In many cases, this is all that is needed to restore the synchronously interlaced and non-coincident incursions of multiple arms into a mutually shared region (as typified in FIG. 30A). An algorithm or heuristic that considers conflict seventies and the cost metrics of several possible solutions, perhaps involving weighting factors 1616, may be used to select a preferred solution to address the circumstances presented. After the action of step 3108, any sequential lists needing to be affected to restore this synchrony have been updated and all remaining issuances of deposit locations from the central coordinator to the subsystems will follow the updated planned timings for each deposit unless another, later unexpected occurrence triggers a new invocation of subroutine 3100. After step 3108 is completed, the subroutine concludes and ‘returns’ in step 3120, meaning that the flow of execution continues with the next step in whichever calling process invoked subroutine 3100 in step 3102.

Returning to step 3106, if it is apparent that minor timing adjustments are insufficient or inefficient for addressing a detected conflict or load imbalance (as may be the result of quantifying overlap durations 3038 or having a heuristic indicate the unavailability of a low-cost solution) then the tiered treatment provide by subroutine 3100 is escalated to a more extensive approach, namely resequencing of deposit locations within one or more of the sequential deposit location lists that are at issue. The resequencing may involve evaluating many stochastic rearrangements, applications of genetic algorithms or the like until a suitable alternative sequencing can be found that is free of collision risks and is acceptable from the standpoint of, for example, anticipated thermal behavior. Where some deposit locations within the remaining deposit tasks for the build have been previously determined to be time-sensitive for achieving thermal objectives, these listed deposit locations may carry a relatively high weighting factor 1616 that will cause a resequencing heuristic to discount any tentative solutions that would call for disrupting the timings among this group of deposits.

Before engaging in resequencing alone, step 3110 is performed to assess whether there are deposit locations within the overlap region that are transferrable from one assigned robotic arm subsystem to another. If there are limited numbers of deposit locations that can be reassigned (perhaps due to part shape or due to thermally time-sensitive clusters) or if the available reassignments do not significantly help the situation or improve resequencing options, then step 3110 directs execution to step 3112 as what may regarded an intermediate tier in terms of rigorously finding alternative sequences and deposit timings that at least avoid collisions and preferably improve other aspects such as load balancing (as in FIG. 30F).

If, in step 3110, some deposit locations may be advantageously reassigned among robotic arm subsystems, then step 3110 directs execution of step 3114 next, wherein various resequencing possibilities may be evaluated while also considering variations of possible reassignments. In comparison to the analysis of step 3112, step 3114 represents a more sophisticated upper tier of treatment that may involve greater complexity but may also yield more optimal rearrangements of deposit location timings and assignments among multiple robotic arm subsystems.

As depicted in FIG. 31 , after performing any needed corrective actions from among the simplest treatment in step 3108, the intermediate treatment in step 3112 or the advanced treatment in step 3114, subroutine 3100 concludes and ‘returns’ in step 3120, meaning that the flow of execution continues with the next step in whichever calling process invoked subroutine 3100 in step 3102.

FIG. 32 depicts a process 3200 for preparing a time-ordered sequential list of deposit locations based upon a digital data model describing a final shape of an object that is to be built. More specifically, process 3200 yields a list of instructions for forming a blank by an additive process whereas other, later processes will remove material to render the finished contours. As this same process 3200 is applied at the outset for several other procedures that will be described below, process 3200 concludes with connector ‘AA’ which will lead to other subsequent processes to be explained separately.

Process 3200 commences with step 3202 upon the need to take at least one slice from a three-dimensional object model and to create a sequential list of instructions by which a depositor will be moved to specific locations in sequence and make discrete prescribed deposits at each location. Execution proceeds immediately to step 3204 referring to the process of obtaining a two-dimensional model slice which shows the contours of the object the height of that layer. This action was conceptually described in connection with FIG. 18 earlier.

Step 3206 refers to the act of applying masker 76 to identify specific voxels from within a voxel pattern (such as generalized pattern 1500), while ensuring that there is material present everywhere along the contour of the object. After a finite set of required voxels has been identified, each having a unique two-dimensional location within the given layer, step 3208 is undertaken to sort the set of required voxels into a one-dimensional time-ordered sequential list. Sorter 78, shown FIG. 12 , creates the time-ordered sequential list which both directs the filling of the correct voxels for the given layer of the object and establishes an ordering that avoids making consecutive deposits into adjoining voxel spaces.

Once this time-ordered sequential list has been prepared in process 3200, then any of several subsequent processes take place. One such process that receives the output of process 3200 as an input or starting point is depicted in FIG. 33 .

Whereas process 3200 results in a generalized sequential list for forming one or more layers of a build which already reflects the aspect of avoiding consecutively placed adjoining deposits as was explained in connection with FIG. 15 earlier, this generalized sequential list is now to be the tasks expressed in the generalized sequential list or to be divided or assigned among multiple independently moving robotic arms that are to simultaneously work towards completion of the layer or part.

In FIG. 33 , process 3300 is shown to accept this generalized list as input from process 3200 by virtue of connector 3210 (labeled ‘AA’) Process 3300 relates to partitioning the original sequential list into subset lists, each pertaining to a particular subsystem that will be assisting with building the part. Process 3300 also involves vetting the subset lists to assure that, at least initially, no collision risks are posed if the subsystems are directed to build according to the divided lists.

In step 3312, the sequential list provided from execution of process 3200 is divided into separate sequential lists according to the reachable territory applicable to each of the robotic arm subsystems. To perform this partitioning, step 3312 involves receiving input, referred to as system configuration info 3313, describing the configuration of the multiple robotic arm subsystems in terms of, for example, their relative positioning, their reach, their geometries, the spatial safety margins needed around each moving robotic arm and the boundaries of the total build space.

Note that where multiple robotic arms have overlapping regions of reach, step 3312 may simply assign each deposit location within the overlap region arbitrarily to any one of the robotic arms that can reach into the space, perhaps with some consideration for proximity to other recently deposited locations in the sequence (to reduce arm travel time.) As of the time that step 3312 is initially performed, it is unlikely that any forehand knowledge of the dynamics of the build would cause particular deposit locations to be assigned in a certain manner among the available robotic arm subsystems. However, as other subsequent logic steps analyzes the tentative and proposed partitioning set forth initially by step 3312, then the resulting subset sequential lists may be refined as needed to avoid collisions and to achieve improved overall build performance.

In step 3314, the sequential lists tentatively assigned to each of the available subsystems are checked for conflicts in areas where the robotic arms overlap. A process for reviewing the subset lists and evaluating possible conflicts was explained in FIG. 29 . In step 3316, based upon whether any conflicts or potential collisions in space-time have been detected by the action of step 3314, then step 3318 may be executed to apply a ‘tiered corrective action’ by invoking subroutine 3100 and then reevaluating by return to step 3314. This cycle of identifying potential conflicts and overlapping regions and attempting to make corrections by step 3318 may continue until a proposed or tentative arrangement of subsystem sequential lists have been decided and determined to be free of conflicts, at which point execution will then continue to step 3320. Regardless of how the check for conflicts is implemented or perhaps integrated into the actions of subroutine 3100, the net result is that the multiple sequential lists are deemed free of any mutual conflicts when execution moves to step 3320.

Step 3320 concerns whether a specific build requires a pre-build simulation as may be decided by engineering personnel, for example, out of concern for the thermal or mechanical behavior of the part. Some parts may not need such a pre-build study while others may involve part shapes or build materials more prone to issues with thermal characteristics or material stresses and justify predictive modeling of the part before the actual build. If no simulation is deemed necessary then, in step 3320, execution continues along connector 3321 (labeled ‘BB’) to proceed with the build as will be discussed in connection with FIG. 34 below. Otherwise, in step 3320, if a simulation is required for the given part being built, then execution then proceeds to step 3322 to perform a simulation such as through finite element analysis (FEA) simulating the effects of each deposit event according to the parameters and timings set forth in the subsystem sequential lists and monitoring the modeled build in comparison to build criteria 3323. Build criteria 3323 may be supplied by a designer of the part or a process engineer or may be specified by a raw material supplier. Build criteria 3323 may express thresholds such as temperature ranges or temperature gradients that the part being formed must comply with. Build criteria 3323 may express acceptable ranges or limits or a quality score related to material characteristics or statistical adherence to measurable parameters. As explained earlier in connection with FIGS. 23-25 , thermal characteristics during a build may be controlled based on the sequencing of deposit locations for discrete deposit events. If a given proposed set of sequential lists undergoes simulation and it is determined that an undesirable pattern of thermal concentration or excessive cooling is occurring as was shown in FIGS. 24 and 25 earlier, then, in accordance with the present teachings, the undesirable thermal characteristic that is predicted to exceed the criteria set forth in step 3323 may be mitigated through resequencing of the deposit locations. To this end, steps 3323 3324 and 3326 relate to determining whether the simulated deposits anticipate that the part being built will deviate from the desired criteria if built according to the proposed deposit sequences and, if so, to execute step 3326 involving resequencing mainly for the purpose of improving build parameter compliance. Note that the output of step 3326 may resemble the generalized sequential list that was initially submitted by execution process 3200 and may then need to undergo another round of tentative partitioning again as in step 3312. Returning to step 3324, if simulated execution of deposit events reveals that the part being built is likely to remain within desirable criteria, then execution passes to connector 3321 (labeled ‘BB’) which leads to a subsequent process for actually building part as will be described in conjunction with FIG. 34 .

The overall result of process 3300 is a set of sequential lists for controlling each of the multiple robotic arm subsystems. These lists have undergone screening and are coordinated in time to be free of collision risks and, if required, are also sequenced and timed in consideration of thermal behaviors. Process 3300 is considered a preparatory process readying a set of coordinated sequential lists before the time of an actual build.

In contrast, FIG. 34 presents a process 3400 applicable to the actual execution of instructions in the various subset sequential lists to build the required part. Process 34 commences upon receipt of the sequential lists as represented by connector 3321 (labeled ‘BB’). In various embodiments, the data output from process 3300 may be stored in a non-volatile data store and need not be immediately connected to, or cause the execution of, subsequent step 3402 of process 3400. The output of process 3300 may be stored and provided to process 3400 at a later time, such as whenever a build process for a given blank part is to be started or each time the build is to be repeated. Processes 3300 and 3400 may be performed in entirely different processors, processing environments or processing platforms. However, it is also possible for both processes 3300 and 3400 to execute within a common platform such as within central coordinator 2610 and to operate contemporaneously with, for example, process 3400 commencing immediately upon the creation of acceptable subset sequential lists from process 3300. The present teachings are not dependent upon one or the other of these possible implementations or still other variations.

Process 3400 mainly describes the interaction between the central coordinator 2610 in each of the subsystems comparable to the communications depicted by the information flows 2630 and 2632 that were presented in FIG. 26 .

In process 3400, step 3402 pertains to preparing a system to execute a build process which involves physical tasks such as bringing any heated parts of the system to their target temperatures, establishing any atmospheric conditions such as flow of inert gases, zeroing or initializing the axes of various motion-controlled apparatuses, calibrating the positions of the arms, etc. This initial effort may also involve loading feedstock into feed tubes and material feeding or driving mechanisms, etc. Depending on what material depositing technology is used (see FIGS. 14A-14B), along with the physical configuration of the machine and the processing platform, various instructions may be carried out for preparing a machine to perform an actual print or build process.

In particular, in the context of multiple robotic arms performing discrete deposition processes, step 3402 involves loading the sequential lists of deposit locations that pertain to each of the subsystems into their respective queues 2612. It is envisioned that central coordinator 2610 will maintain a set of data structures in memory that represent the sequential lists and that step 3402 will include acquiring or loading the data from non-volatile memory or the like and having those data structures on hand for use in context of the steps that follow.

In step 3404, build timer 2615 or the like may be initialized to serve as a timing reference so that central coordinator 2610 can appropriately pace the actions of the respective subsystems. Build timer 2615 may present time in terms of, for example, milliseconds or microseconds or any other arbitrary time format with sufficient resolution to detect and mitigate collision risks depending on movement speeds of the robotic arm assemblies. The value of build timer 2615 will be compared to the ETA values within each record for the build (analogous to record 1640) to coordinate the timing of deposit events and to sense whether the deposit events are occurring in agreement with the intended timings or are starting to deviate therefrom.

Step 3406 and the remaining steps in process 3400 relate to a cyclic exchange of communications between each subsystem and the central controller. Step 3406 pertains to providing one or a few deposit locations to a subsystem from the queue maintained by the central coordinator for that subsystem. The deposit location instruction received may resemble a complete record 1640 or may comprise only the fields necessary for the subsystem to carry out the instruction.

In step 3408, the subsystem moves to the location specified in the instruction that was received in step 3406. If an implementation allows for conveying multiple deposit locations to a subsystem in a small batch, then step 3408 involves moving an effector to the first location or to a subsequent one, in sequence, of the locations received thus far.

In step 3409, with the subsystem having moved a depositing tool to the specified location (in an action comparable to FIG. 20(a) the subsystem carries out the specified material depositing action as shown in FIG. 20(b). Note that separate steps 3408 and 3409 correspond to the distinct alternation of tool movement and deposit action, in contrast to more conventional, continuous bead deposition processes. Indeed, it is possible and useful to, for example, deposit without moving (see re-entry pathway 3432) in a manner quite unlike continuous bead deposition.

After the subsystem moves its effector to the location and performs a deposit action, the subsystem determines whether the deposit action was successful. In the case of the examples of single-mass transfer processes depicted in FIG. 14 , there are, for example, changes in electrical current or voltage that can be used to sense whether a deposit event has successfully taken place. Alternatively, some subsystems may be equipped for detecting temperature changes such as by infrared imaging or the like and make gauge whether an intended mass deposit occurred place successfully. Accordingly, in step 3410, a determination is made by a respective subsystem as to whether its attempt at performing a deposit was successful. If so, then execution passes to step 3412 wherein the subsystem reports its success to the central coordinator and then, by return to step 3406, the controller provides to the subsystem a next deposit location from the particular one of queues 2612 that holds the sequential list for the subject subsystem. This cycle of interaction will continue for as long as the subsystem continues to be successful in its assigned deposits at locations and until the subsystem has completed all of the material deposit tasks it was assigned for a given layer. However, if, in step 3410, a subsystem detects that an attempted deposit was unsuccessful, then execution passes to step 3414 wherein the subsystem reports to the central coordinator that there was a problem and indicates the relative severity of the problem encountered.

For example, if a subsystem detects a simple misfire in a welding deposition process, the subsystem may fairly quickly reattempt the same deposit. In step 3416, the central coordinator participates in deciding whether the given subsystem should reattempt the deposit. When a subsystem has reported a problem and the controller has acknowledged the indication and responded, in step 3416, that the subsystem is instructed to reattempt the same deposit then execution passes to step 3418 wherein the subsystem will perform (generally automatically) any corrective action, such as scrubbing over the contact zone or touching a depositing tip against an alternative surface or a cleaning brush and returning to the specified deposit location, refeeding the raw material and simply retrying the same deposit and then again reporting its success or failure in step 3410. Note that it is important for the central coordinator to be kept apprised of the success or failure of the subsystem rather than allowing the subsystem to, on its own, reattempt the same deposit action an indefinite number of times. Step 3416 allows central coordinator 2610 to participate in the decision on how to circumvent or respond to a given fault experienced by the subsystem.

As another possible determination made by step 3416, the controller central coordinator may respond to a fault indication from subsystem by instructing the subsystem to neglect or ignore the deposit location at which a problem was observed by the subsystem and to return to the step 3406 and obtain a next deposit location. In some cases, the central coordinator may elect to allow the deposit location to go unfilled (if non-critical) or may reassign the deposit location to be handled by another robotic arm or by some other tool that may be able to correct the problem with the particular location. As a third possibility based on decision step 3416, central coordinator 2610 may respond to the subsystem that it is to take corrective action to fix or resolve the detected problem and to then notify the central coordinator when the operation is restored as indicated in step 3418. Upon an indication that proper operation has been restored for the subsystem, then the subsystem may, in step 3406, request its next deposit location from the controller.

As each of the subsystems continue to report the status of their material deposit activities, central coordinator 2610 reviews the overall conditions of the system and the build process in step 3422. At least as frequently as when a subsystem indicates a successful deposit at a specific time, central coordinator 2610 may evaluate the reported time of the deposit versus the expected time and determine whether any discrepancy between these values warrants timing adjustments or rearrangements within the sequential lists. Additionally, central coordinator 2610 may, at this juncture or periodically, assess the overall operational status of the system at large and monitor the condition of the build, such as by using infrared imaging, probing, strain gages, visual confirmation, or other sensing techniques. Adherence to desired thermal or stress conditions may be sensed by the coordinator itself or by adjunct signal processing systems communicating with the coordinator. If an undesirable condition or trend is detected by, or reported to, the central coordinator, then the coordinator may initiate timing adjustments or rearrangements of the sequential lists to correct or circumvent the issue. This aspect of the central coordinator logic is further explained in process 3500.

Also represented by step 3422 is the ability for central coordinator 2610 to compare pending task loads and estimated completion times among the active subsystems (explained in conjunction with FIGS. 30E-30F) and responsively perform retiming and resequencing to improve overall build efficiency.

Although process 3400 appears to iterate indefinitely as the coordinator communicates with multiple subsystems, process 3400 actually concludes (effectively via an exit within step 3422 and as will be explained in FIG. 35A) when all assigned deposit locations required for a layer build are deemed to have been handled by the subsystems.

In complement to process 3400, which represents the high-level interaction between the central coordinator and each of the subtending subsystems, FIGS. 35A-35B portray typical logic that may execute within the central coordinator 2610 as it performs its roles shown in process 3400.

Shown starting in FIG. 35A, process 3500 is executed by central controller 2610, commencing with step 3502 whenever a notification of success or failure of an attempted deposit is received from one of the active subsystems as was depicted in step 3410. Upon receipt of such notification, step 3504 is first executed to determine whether the indication is that of a successful deposit attempt. If so, then execution continues with step 3506 to determine whether all locations for the given build layer have been completed.

If all required deposit locations for a given layer have received deposited material, then the build process for the layer is deemed complete, at least on the part of the subsystem that provided the notification. When all subsystems have performed all of their respectively scheduled deposit tasks and no more deposit tasks for the current build layer remain in the queued sequential lists, then, by passage to step 3508, the process of building a layer is deemed complete and the execution of process 3500, at least for the one layer of the build, is concluded. At this point, the construction of a next layer may be commenced or, if all required layers have been deposited, the entire build is deemed completed and looped execution of processes 3400 and 3500 ceases.

If it is determined, in step 3506, that not all locations have been processed, then execution continues to step 3510 to examine the time according to build timer 2615 (initialized upon beginning the build in step 3404) versus the expected time for the deposit to have occurred as indicated in ETA field 1612 within record 1640 for the particular deposit location.

Step 3512 acts upon the time comparison of step 3510 and relates to calculating whether any significant time disparity exists between the time reported time of completion of the deposit reported by the subsystem versus the estimated time called for in the deposit location record. If a significant delay has been introduced as a result of executing the last deposit, step 3512 causes execution to proceed directly to step 3518 which amounts to invoking an instance of subroutine 3100, introduced earlier, to assess the impact of an unexpected delay and to take corrective action as necessary by resequencing or introducing delays as was described in connection with subroutine 3100. After such corrective action has taken place, then as shown by connector 3430 (labeled ‘E’), execution flow returns to process 3400, re-entering the loop of interaction between the controller and subsystems at step 3406.

Returning to step 3512, if it is determined that the disparity between the time reported by the subsystem for completion of the deposit versus the expected time is insignificant, then step 3514 is undertaken to assess the condition of the part being built or the workpiece or to review the operational status of the system as a result of the recent deposit. As explained elsewhere herein, this may entail performing infrared imaging or measuring stresses or other characteristics that may need to be controlled and may require throttling the pace at which subsequent deposits are occurring.

In step 3516, the determination is made as to whether the conditions of the workpiece are deviating from desired criteria, which may or may not match the build criteria 3323 that were set forth earlier during a simulation, if any. If no important deviations are occurring, then step 3516 causes execution to proceed through connector 3430 back to the point at which, in step 3406, the subsystem requests a next deposit location at the subsystem is to act.

If, on the other hand, in step 3516 it is noted that the workpiece conditions are significantly deviating from their intended limits, then 3518 is undertaken to invoke subroutine 3100 and perhaps re-simulate the behavior of the part (in a manner described for steps 3323-3326 of FIG. 33 ) to determine a best course of action for resequencing to address the unexpected deviation that is been detected in step 3516. Again, as described earlier, upon completion of step 3518 execution returns through connector 3430 to have the subsystem request a next deposit location from the central coordinator in step 3406.

The description of process 3500 is continued in FIG. 35B by way of connector 3505 (labeled ‘D’) shown in both FIGS. 35A and 35B. If it is determined in step 3504 that the subsystem is reporting an unsuccessful deposit event, then decision step 3520 is performed as the next logic branch and directs which further steps will be executed based on the severity of the fault as communicated by the subsystem.

First, to describe the handling of minor faults, such as momentary misfires that may be handled by fast automated recovery, step 3520 causes branching to the execution of step 3522 wherein the number of consecutive error reports from the same subsystem are evaluated and, for example, compared to ‘maximum retries allowed’ threshold as may have been established by a manufacturer or operator of the system. Though not explicitly shown, this implies the presence of a per-subsystem counter, such as a data value in computing memory, that may be reset, incremented and compared to the threshold value, which may also be a value stored in memory and accessible to a processor executing the instructions that implement process 3500.

If, in step 3522, the unsuccessful deposit is only a first attempt or at least has not exceeded the maximum retry threshold, then, in step 3524, the coordinator signals the subsystem to proceed with retrying the deposit at the same location (See FIG. 34 at steps 3416 and 3418.) In addition, the impact of the fault and the unforeseen delay to re-attempt the deposit is assessed in decision step 3526. Step 3526 may entail performing process 2900 to test the relevant sequential list for the fault-affected subsystem against those of any adjacent subsystems which share some region of overlap. Each such comparison of lists is expected to readily detect resultant collision risks assuming the ETAs for all subsequent deposits were to be adjusted to accommodate the time penalty for re-attempting the deposit. If no new collision risks arise from the proposed postponement of deposit events for the fault-affected subsystem, then the delays are simply applied to the remaining tasks for the subsystem and then execution resumes, via connector 3432 (labeled ‘F’), with step 3409.

In the particular logic flow implementation shown by way of example, the fault-affected subsystem remains at the last-assigned deposit location and is still tasked with making a successful material deposit at the location where the fault was reported. Accordingly, step 3409 is the return point into process 3400 (signifying the re-attempt and success reporting) rather than step 3406 in which the subsystem would request a ‘next’ deposit location. Other logic flows are possible, for example, wherein the fault-affected subsystem must re-acquire the deposit task or move back to the location (step 3408) after having moved away either in anticipation of likely success (as in FIG. 22C) or because confirmation of a successful deposit is performed by a probe or imaging device that requires the effector to be moved out of the way.

As another alternative to the specific logic flow shown, the evaluation of collision risks may be suspended until the subsystem reports a successful reattempt, at which time the full impact of one or more reattempt delays can be assessed in a single, conclusive pass rather than performing steps 3526-3528 for every re-attempt at the same location.

Returning to step 3526, if the retry delay results in a collision conflict, then step 3528 is applied, essentially calling the ‘tiered corrective action’ subroutine 3100 to review the situation and act upon the sequential lists involved in the conflict. After subroutine 3100 has performed any needed actions necessitated by the delay, then execution continues, via connector 3432, with step 3409 as the affected subsystem re-attempts a deposit at the same location.

As a second pathway through the logic shown in FIG. 35B, decision step 3520 may act upon the indication from the reporting subsystem that the nature of the fault is of ‘moderate’ severity, which may be the case when a depositing tip needs replacing, suffers misfeeds or is lacking feedstock material to deposit. These are typically not serious failures but resolving such issues may take additional time (well beyond the duration of a simple retry after a misfire) even if they involve automated recovery processes, and especially if they require operator intervention. For these situations, step 3520 leads to the execution of step 3530 wherein the controller communicates to the subsystem that it is to resolve the issue and report back when the problem has been resolved. Step 3532 refers to the coordinator withholding any additional deposit assignments for the particular subsystem until it reports successful deposit or otherwise indicates return to operational status. This logical pathway is responsive to step 3420 having been executed in process 3400.

As explained above for handling of minor faults, it is assumed that the fault-affected subsystem is to retain the last-assigned deposit task and to re-attempt that deposit when normal operation is restored. Using this approach, successful completion of the last-assigned deposit task is used to prove the return to operational status. As coordinator 2610 might go about retiming and reshuffling sequential lists because of the reported moderate-severity fault condition, the coordinator may exclude the one deposit from being included in reshuffling. Other approaches for addressing the reported deposit location and for reactivating a subsystem as it recovers from a fault are possible, depending on implementation preferences, and the present teachings should not be construed to rely solely on the specific logic flows as were shown merely as examples in processes 3400 and 3500.

Following the execution of step 3532, possible impacts from the unexpected time delay itself, as well as possible effects on thermal state, are both considered and adjustments are made by the central coordinator as necessary. Step 3534 involves assessing the thermal state (or resultant stress state) of the workpiece being formed and determining whether the unexpected delay causes enough deviation to warrant invoking the aforementioned tiered corrective action subroutine in step 3528. Note that this more extensive assessment is performed for a ‘moderate’ severity fault due to the potentially longer delay compared to a ‘minor’ severity fault. If, in step 3534, thermal issues are not concerning, then a second assessment is made in step 3526, as was done for a minor fault, to determine if the delay causes potential collisions or conflicts. If so, then tiered corrective action is applied in step 3528. If not, then execution continues at step 3409 by way of connector 3432.

Returning the branch at step 3520, a third pathway is designed to address indications of severe faults or failures within a subsystem that involve long or indefinite recovery times and may even mean that the subsystem is offline for the remainder of a layer build or an entire part build. These instances are expected to occur very rarely, but steps 3540-3544 seek to circumvent such failures by leveraging the redundant coverage of adjacent subsystems where possible. Once a severe fault state has been reported by a subsystem, decision step 3540 is performed to assess whether the remaining deposit tasks that were queued for the now-failed subsystem are either non-critical to the build or can be handled by other subsystems nearby. The non-essentiality of a given deposit location may have been established by a part designer as part of a model and encoded as an additional field in a corresponding record 1640. The non-essentiality may also be inferred when the problem arises during construction of extraneous support material intended to be discarded after the blank part is completed.

In some system implementations, an alternative solution to a complete failure of a subsystem may be to suspend the build, reorient the workpiece to not rely on the reach of the failed subsystem and to rebuild the sequential lists by revisiting processes 3200 and 3300 based on the new workpiece positioning. It is contemplated that the repositioning and recalculating of sequential lists may be automated and that the workpiece might be repositioned more than once as the build progresses to allow other subsystems to act upon the tasks originally slated for the failed subsystem. It is contemplated that subsystems might be dynamically repositioned as well and that the severity of a fault might be classified as ‘moderate’ if another subsystem can move into position to replace the coverage within a reasonable time. As an advantage of the non-continuous deposition approach taught herein, and in contrast to typical continuous bead extrusion processes, the exact locations and bounds of each single subsequent deposits can be readily translated to new coordinates with high accuracy and yield a finished blank that may be indistinguishable from an identical part built without interruption and repositioning.

In step 3540, if there are deposit locations that cannot be dismissed as non-essential and there are no ways to reassign the deposit tasks to other subsystems, then the build process is halted in step 3548, either temporarily until the subsystem can reactivated or permanently resulting in a failed build.

As a preferable outcome of step 3540, if the deposit tasks jeopardized by the failure of the subsystem can be handled elsewhere, then the reporting subsystem is instructed (step 3542) to skip the one deposit location for which the problem was reported (enabling a different subsystem to assume responsibility for that deposit task) and then step 3544 invokes subroutine 3100 to accomplish the assignments and resequencing necessary to work around the failed subsystem. Once a fresh set of sequential lists have been computed in subroutine 3100, then execution continues by way of connector 3430 at step 3406 wherein the remaining functional subsystems continue to receive next deposit location instructions from the central controller. The controller, having been notified of the failed subsystems and having undertaken the re-computation of sequential lists, no longer includes the failed subsystem as it distributes deposit locations. Were the failed subsystem to regain operation at some point during a build, the subsystem may alert the central coordinator as part of the logic (not explicitly shown) operating in step 3422. If, in step 3540, it is determined that not all locations assigned to the failed subsystem can be reassigned and that some essential voxel spaces cannot be filled and are indispensable for a successful build, then, in step 3548, the build process at hand may need to be suspended or halted until the subsystem is returned to operation or until the workpiece can be reoriented so that other subsystems are within reach to continue the build. The latter option would likely require revisiting process 3300 but this could conceivably occur quickly so that the build may continue before excessive cooling of the workpiece has occurred. Barring these possibilities, step 3548 may amount to stopping and abandoning the build process and scrapping the partially built part.

Testing was performed using a 6-axis robotic weld cell with a GMAW power supply using 0.045″ diameter ER7OS filler wire with 15 mm stick out and a 90/10 Argon/CO² shielding gas flowing at 25 CFH. Four separate tests were performed: 1) a DoE varying wire feed speed and arc on time to understand the variety of cell sizes possible with the process, 2) a series of 100 cells using identical parameters in order to characterize repeatability of the process, 3) tests varying the overlap and positioning of cells required to build a three-dimensional block, and 4) a comparison of residual stress and distortion between the proposed architecture and a standard WAAM process. With the exception of the stress test, all tests used 6″×6″×0.375″ hot rolled A36 steel base plates.

Example 1

Summary of Initial Process Development 2.2.1 Cell Size DoE

Arc-on time and wire feed speed were varied to evaluate the range of cell sizes that could be generated by the equipment in the welding cell. Arc-on times ranged from 100 to 1,000 milliseconds (ms) in 100 ms increments, while wire feed speeds were varied from 100 to 300 inches per minute (ipm) in 50 ipm increments. The test was performed twice and the average height, diameter, and aspect ratio of each combination of arc-on time and wire feed speed was calculated.

Cell size (both diameter and height) increased with respect to both time and wire feed speed. Diameters ranged from 2.85 to 7.3 mm, while the average height ranged from 0.95 to 3.12 mm. This wide range of cell sizes suggests that there is a wide process window that can be utilized to fine tune the cells not only in terms of size, but in terms of heat input and microstructure. The diameter to height aspect ratios ranged from 1.72 to 3.38, with the largest aspect ratios correlated to cells produced with short arc-on times and high wire feed speeds. While aspect ratios of 4 to 5 are suggested to be the minimum allowed to avoid macroscopic lack of fusion between weld beads, the relatively low aspect ratios observed were attributed to the “cold” nature of the short circuiting CMT process. The aspect ratio could be increased by changing wire feed speed, stick out, and shielding gas in order to change the arc characteristics away from a short circuit and towards a spray, globular, or pulsed mode. Some voids were present on top of larger cells suggesting that the base plates were dirty and/or insufficient shielding gas was present. This is unsurprising as the weld cell automatically turned the gas on and off during the move time between each cell. Running the shielding gas continuously to maintain an inert environment surrounding the process may prevent such voids.

Example 2

Two sets of parameters (i.e., “small” and “large)” were down-selected from Example 1 to continue testing. Both cell sizes were generated using a wire feed speed of 300 ipm, with an arc-on time of 100 ms for the small cells and 900 ms for the large cells. 100 cells were produced with each set of parameters, and the heights and diameters were measured with calipers. Average heights, diameters, and aspect ratios were calculated.

Statistical analysis for both sets of cell sizes showed a relatively normal distribution in terms of diameter, height, and aspect ratio. The average diameter and height of the 100 ms cells were 4.69 and 1.33 mm respectively, while the 900 ms cells had an average height and diameter of 7.42 and 3.06 mm respectively.

Three sigma manufacturing control analysis for each of the two sizes shows that the process is controllable, as none of the cells measured were found to fall outside of the control limits. The manufacturing control plot of the small cells shows no trends with respect to the order in which cells were generated. This is likely due to the low heat input generated by these cells, as the manufacturing control plot for the large cells shows that the cell aspect ratio increased as additional cells were produced. The diameter remained the same, while the cell height decreased as additional cells were produced. An increase in the starting temperature means that there is excess thermal energy in the deposition (i.e., the energy input from the GMAW process remains constant), which melts more of the material around the cell, thus increasing the diameter while reducing height. Thus, it was inferred that the overall temperature of the plate increased as the test progressed due to the higher heat input used to generate large cells.

Example 3

Once the average diameter and height were calculated for each set of parameters, the slicing software was implemented to write code to test the effects of cell overlap and stacking on the architecture's ability to build three dimensional blocks. Cell placement was randomized by the slicing software within a hexagonal array, while cell overlaps were varied from 0-40% of the cell diameter for both small and large cells. Thin two-layer blocks were built first to determine a visually acceptable level of overlap, followed by a full size block measuring 25 mm×100 mm×12 mm. The final block was then cross sectioned and polished using standard metallographic techniques for macro- and microscopic evaluation.

The first overlap tests were performed with the small 100 ms cells. The cells rapidly placed in close proximity resulted in a propensity to agglomerate and become asymmetric. An initial assumption was made during testing that the agglomeration was due to the low heat input of the small cells, and no further testing was performed with the small cells at that time. Overlap testing performed with the larger 900 ms cells showed visually acceptable results at a 20% overlap of cell diameter (i.e., overlap of the cells within the same layer). The initial layers of the large block had a much rougher upper surface than the final layer of the full-size block. This effect was reduced in the full size block as the overall temperature of the component increased during the build. In-situ human observation of the process revealed that the agglomeration effect seen in the small cells was still occurring when cells were generated in close proximity, regardless of the layer. The last cells deposited in each layer were observed to wet evenly to all sides as they filled in divots left by the surrounding hexagonally patterned cells. This suggests that the agglomeration effect can be overcome by changing the order in which cells are deposited from a fully random sorting to a semi-randomized sorting pattern which will ensure that no two cells are generated immediately in close proximity.

Macroscopic evaluation of the block revealed a welding defect—lack of fusion—between cells. The lack of fusion appeared to be more frequent on the initial layers of the build, likely due to the lower overall temperature of the component. This is not surprising, as the CMT process uses the short-circuit transfer mode, which is prone to lack of fusion. Lack of fusion in the cell-arc process can be overcome by changing the aspect ratio of each individual cell or increasing the heat input of the process by changing to different GMAW transfer mode such as spray transfer.

Microscopic evaluation showed that the steel microstructure underwent significant recrystallization as it is reheated by the cells surrounding it on all sides. The recrystallization occurred as underlying cells were reheated and tempered, thus forming a highly desirable tough, fine grained microstructure.

Example 4

Magnitudes of residual stress were compared between blocks built with three different cell parameter sets (Inventive Examples 1-3) and a conventional low-heat input CMT linear weld (Comparative Example). For each of Inventive Examples 1-3 (IE1-IE3) and the Comparative Example (CE), long, thin blocks measuring 0.5″×10″×0.5″ were each produced on a 2″×12″×0.125″ plate to minimize the restraint provided by the base plate and maximize distortion generated by the block. Each build plate was weighed before and after each block was deposited, and the total time required to build each block and the final temperature of each sample were recorded. Energy input was calculated based on welding parameters and known arc and melting efficiencies for the GMAW process. Table 1 shows various process parameters for IE1-IE3 and CE.

TABLE 1 Wire Arc On Duty Feed Travel Deposit Time Cycle Rate Total # Speed Speed Amperage Voltage Block (ms) (%) (ipm) Cells (mm/s) (mm/s) (A) (V) IE1 100 17.8 300 2860  450 N/A 203 13.1 IE2 500 52 300 750 450 N/A 203 13.1 IE3 900 66.1 300 420 450 N/A 203 13.1 CE N/A 100 100 N/A N/A 3 88 10.4 Total Energy Energy Energy Build Final Material Deposition Input per Cell Density Time Temp Deposited Rate Measured Block (J) (J) (J/mm³) (min) (° C.) (lb) (lb/hr) Distortion IE1 380280 133 11.45 50 320 0.577 0.69 1.2 IE2 498619 665 14.69 18 540 0.590 1.97 0.6 IE3 502608 1197  15.44 13 535 0.566 2.61 0.3 CE 686400 N/A 23.43 25 270 0.509 1.22 3

Distortion was measured by placing the each sample on a flat surface and measuring the amount of deflection between the surface and the high points of each build plate. Test results showed that IE3 exhibited the lowest amount of distortion, thus containing the least residual stress of all samples. Distortion was found to increase as the arc on time per cell diminished. CE contained the largest amount of distortion. The total energy inputs, deposited weight, and volume of all samples used to produce all samples were approximately equal. The duty cycle and energy input per cell were strongly correlated to the final temperature, and inversely related to the measured distortion of each sample. While the total energy input, energy density, and final temperature of IE2 and IE3 were approximately equal, the energy per cell in IE3 was twice that of IE2, while the distortion measured in IE3 was half that of IE2. This suggests that the energy input per cell is influential in controlling residual stress.

The most critical factors affecting residual stress in this test were energy input per cell and the ratio of the weld bead area to the area of surrounding material. In light of these test results, without being bound by theory, the residual stress was reduced substantially in the cellular, non-continuously deposited samples, IE1-IE3, compared to the linear sample, CE, for two primary reasons: 1) the temperature gradient between each cell and the component is lower than traditional linear welding processes thanks to the ability of the randomized cell architecture to distribute energy evenly throughout a component, and 2) the lack of linear stress buildup during deposition by eliminating linear deposition paths in favor of even distributed small, circular weld beads. The cell-based architecture resulted in substantially lower residual stresses than the conventional arc-based DED processes, and residual stress and distortion can be controlled by controlling the amount of energy input per cell.

In various embodiments disclosed herein, a single component can be replaced by multiple components and multiple components can be replaced by a single component to perform a given function or functions. Except where such substitution would not be operative, such substitution is within the intended scope of the embodiments.

The foregoing description of embodiments and examples has been presented for purposes of illustration and description. It is not intended to be exhaustive or limiting to the forms described. Numerous modifications are possible in light of the above teachings. Some of those modifications have been discussed and others will be understood by those skilled in the art. The embodiments were chosen and described for illustration of various embodiments. The scope is, of course, not limited to the examples or embodiments set forth herein, but can be employed in any number of applications and equivalent devices known in the art. Rather, it is hereby intended that the scope be defined by the claims appended hereto. Also, for any methods claimed and/or described, regardless of whether the method is described in conjunction with a flow diagram, it should be understood that unless otherwise specified or required by context, any explicit or implicit ordering of steps performed in the execution of a method does not imply that those steps must be performed in the order presented and may be performed in a different order or in parallel. 

What is claimed is:
 1. In an additive manufacturing system for constructing an object by making a series of discrete material deposits, a method comprising: providing at least one first robotic material-depositing subsystem comprising a first non-continuous material-depositing device attached to a first motion control system, the first subsystem acting to move the first material-depositing device to, and perform discrete deposition of material at, specific locations according to a first time-ordered list of deposit location instructions; providing at least one second robotic material-depositing subsystem comprising a second non-continuous material-depositing device attached to a second motion control system, the second subsystem acting to move the second material-depositing device to, and perform discrete deposition of material at, specific locations according to a second time-ordered list of deposit location instructions; detecting a potential collision between the first and second non-continuous material-depositing devices caused by simultaneous operation of the first subsystem according to the first time-ordered list and of the second subsystem according to second time-ordered list; and altering at least one of the first and second time-ordered lists to resolve the potential collision.
 2. The method of claim 1 wherein each deposit location instruction in the first and second time-ordered lists is associated with an instance of expected-time-of-occurrence data and the detecting of a potential collision comprises comparing instances of expected-time-of-occurrence data among deposit instructions in the first and second time-ordered lists.
 3. The method of claim 2 wherein the altering comprises changing the value of at least one expected-time-of-occurrence data instances associated with at least one of the deposit location instructions.
 4. The method of claim 1 wherein the altering comprises reordering the sequence of deposit location instructions within at least one of the first and second time-ordered lists until the potential collision is eliminated.
 5. The method of claim 1 wherein the altering comprises moving at least one of the deposit location instructions from the first time-ordered list to the second time-ordered list.
 6. The method of claim 4 wherein the altering further comprises moving at least one deposit location instruction from the second time-ordered list to the first time-ordered list.
 7. The method of claim 1 further comprising: determining, as the first robotic material-depositing subsystem operates according to the first time-ordered list of deposit location instructions, a time difference between an actual time-of-occurrence for discrete deposition of material responsive to a deposit location instruction and a value of an instance of expected-time-of-occurrence data associated with the deposit location instruction; detecting whether a potential collision exists when the time difference is applied to expected-time-of-occurrence data associated with subsequent deposit location instructions in the first time-ordered list; and performing the altering responsive to the detecting a potential collision when the time difference is applied.
 8. The method of claim 1 wherein at least one of the first and second material-depositing devices acts by adding heat energy to perform discrete deposition of material and wherein the method further comprises: obtaining a planned thermal profile for at least a portion of the object's volume; producing a predictive thermal model that predicts at least one temperature within the portion caused by at least one of the first and second subsystems adding heat to specific locations of the portion as they perform discrete depositions of material within the portion; comparing the predictive thermal model to the planned thermal profile to determine at least one difference value; and responsive to the difference value, reducing the difference value by performing at least one of: changing timing between discrete depositions by at least one of the first subsystem and the second subsystem, reordering the programmed locations in at least one of the first time-ordered list and the second time-ordered list, moving at least one deposition location from the first time-ordered list to the second time-order list, and moving at least one deposition location from the second time-ordered list to the first time-ordered list.
 9. The method of claim 1 wherein at least one of the first and second material-depositing devices acts by adding heat energy to perform a discrete deposition of material and wherein the method further comprises: providing a planned thermal profile for at least a portion of the object's volume; obtaining, as the construction of the object progresses, temperature measurements within the portion caused by at least one of the first and second subsystems adding heat to specific locations of the portion as they perform discrete depositions of material within the portion; comparing the temperature measurements to the planned thermal profile to determine at least one temperature difference value; and responsive to the temperature difference value, reducing the temperature difference as the construction of the object proceeds by performing at least one of: changing timing between discrete depositions by at least one of the first subsystem and the second subsystem, reordering the programmed locations in at least one of the first time-ordered list and the second time-ordered list, moving at least one deposition location from the first time-ordered list to the second time-order list and moving at least one deposition location from the second time-ordered list to the first time-ordered list.
 10. The method of claim 1 wherein at least one of the first and second material-depositing devices acts by adding heat energy to perform discrete deposition of material and wherein the method further comprises: obtaining a planned mechanical stress profile for at least a portion of the object's volume; producing a predictive model that predicts at least one mechanical stress within the portion caused by at least one of the first and second subsystems adding heat to specific locations of the portion as they perform discrete depositions of material within the portion; comparing the predictive model to the planned mechanical stress profile to determine at least one difference value; and responsive to the difference value, reducing the difference value by performing at least one of: changing timing between discrete depositions by at least one of the first subsystem and the second subsystem, reordering the programmed locations in at least one of the first time-ordered list and the second time-ordered list, moving at least one deposition location from the first time-ordered list to the second time-order list, and moving at least one deposition location from the second time-ordered list to the first time-ordered list.
 11. The method of claim 1 wherein at least one of the first and second material-depositing devices acts by adding heat energy to perform a discrete deposition of material and wherein the method further comprises: providing a planned mechanical stress profile for at least a portion of the object's volume; obtaining, as the construction of the object progresses, mechanical stress measurements within the portion caused by at least one of the first and second subsystems adding heat to specific locations of the portion as they perform discrete depositions of material within the portion; comparing the mechanical stress measurements to the planned mechanical stress profile to determine at least one difference value; and responsive to the difference value, reducing the difference as the construction of the object proceeds by performing at least one of: changing timing between discrete depositions by at least one of the first subsystem and the second subsystem, reordering the programmed locations in at least one of the first time-ordered list and the second time-ordered list, moving at least one deposition location from the first time-ordered list to the second time-order list and moving at least one deposition location from the second time-ordered list to the first time-ordered list.
 12. An additive manufacturing system for forming an object by successively depositing at least one material comprising: a first robotic material-depositing subsystem comprising a first non-continuous material-depositing device attached to a first motion control system, the first subsystem performing a material depositing action at a specified first location by moving the first material-depositing device to the first location and depositing a mass of material at the first location, the first location being within a first area comprising a plurality of locations reachable by the first subsystem and being specified by deposit location information provided to the first subsystem; a second robotic material-depositing subsystem comprising a second non-continuous material-depositing device attached to a second motion control system, the second subsystem performing a material depositing action at a specified second location by moving the second material-depositing device to the second location and depositing a mass of material at the second location, the second location being within a second area comprising a plurality of locations reachable by the second subsystem and being specified by deposit location information provided to the second subsystem; a central controller, communicably coupled to the first and second subsystems, operable to maintain at least one ordered list of deposit instructions comprising deposit location information and to control the construction of the object by providing deposit location information to the first and second subsystems.
 13. The system of claim 12 wherein the controller controls which subsystem is to perform a material depositing action corresponding to each of the deposit instructions.
 14. The system of claim 13 wherein at least one deposit location specified by a deposit instruction is within both the first area and the second area and wherein the central controller is further operable to control whether the first subsystem or the second subsystem performs a material depositing action at the deposit location.
 15. The system of claim 12 wherein each instance of communication from the central controller to a subsystem contains a proper subset of the total deposit location information contained in the ordered list of deposit instructions.
 16. The system of claim 15 wherein each instance of communication from the central controller to a subsystem contains no more than one single instance of deposit location information for use by the subsystem.
 17. The system of claim 12 further comprising: a source of time information available to the central controller; wherein each deposit instruction in the ordered list is associated with a scheduled time-of-occurrence value; and wherein the central controller is operable to change scheduled time-of-occurrence values.
 18. The system of claim 17 further comprising a thermal sensor coupled to the central controller and detecting one or more thermal conditions of materials that have been deposited by the system, wherein the central controller operates to change at least one scheduled time-of-occurrence value responsive to at least one thermal condition detected by the thermal sensor.
 19. The system of claim 17 wherein the first and second subsystems are positioned within the system such that, for at least one combination of a first location within the first area and a second location within the second area, moving the first subsystem in accordance with the first location while moving the second subsystem in accordance with the second location results in physical contact between one or more components of the first subsystem and one or more components of the second subsystem.
 20. The system of claim 19 wherein the central controller is operable to analyze the scheduled times of occurrence values for as-yet-unexecuted deposit instructions in the at least one ordered list and to detect the presence of one or more collision instances in which moving the first subsystem in accordance with the first location and moving the second subsystem in accordance with the second location will be coincident.
 21. The system of claim 20 wherein, responsive to detecting the presence of at least one collision instance, the central controller is further operable to iteratively rearrange the deposit instructions in the at least one ordered list and analyze the scheduled times of occurrence values for all as-yet-unexecuted deposit instructions until no collision instances are detected.
 22. The system of claim 19 wherein the controller maintains a first subsystem-specific ordered list of deposit instructions corresponding to a sequence of deposit actions to be performed by the first subsystem and a second subsystem-specific ordered list of deposit instructions corresponding to a sequence of deposit actions to be performed by the second subsystem.
 23. The system of claim 22 wherein at least one location specified by a deposit instruction in the first subsystem-specific ordered list is also within the second area and wherein the controller is further operable to move the deposit instruction from the first ordered list to the second ordered list.
 24. The system of claim 22 wherein each instance of communication from the central controller to a particular subsystem contains a proper subset of the total deposit location information contained in the subsystem-specific ordered list of deposit instructions for that particular subsystem.
 25. The system of claim 24 wherein each instance of communication from the central controller to the particular subsystem contains no more than one single instance of deposit location information for use by the particular subsystem.
 26. The system of claim 21 wherein at least one subsystem is operable to detect failure of an attempted discrete deposit at a specific location corresponding to a first deposit instruction and to communicate a first notification of the failure to the central controller and wherein, in response to the notification, the central controller is operable to suspend communicating further deposit location information to the subsystem until receiving a second notification from the subsystem that the discrete deposit at the specific location has been successfully completed.
 27. The system of claim 26 wherein the central controller is further operable to compare a time associated with the successfully completed discrete deposit to the scheduled time-of-occurrence value for the first deposit instruction and calculating an incurred delay time value resulting from the failure at the subsystem.
 28. The system of claim 27 wherein the central controller is further operable to apply the incurred delay to changing the scheduled time-of-occurrence values for all as-yet-unexecuted deposit instructions in at least one ordered list.
 29. The system of claim 28 wherein the central controller is further operable, upon applying the incurred delay to changing the scheduled time-of-occurrence values, to iteratively rearrange the deposit instructions in the at least one ordered list and analyze the scheduled times of occurrence values for all as-yet-unexecuted deposit instructions until no collision instances are detected.
 30. The system of claim 23 further comprising: a thermal sensor coupled to the central controller and detecting one or more thermal conditions of materials that have been deposited by the system, wherein the central controller is further operable to, responsive to detecting at least one thermal condition, move at least one deposit instruction from the first ordered list to the second ordered list and to iteratively rearrange the deposit instructions in the at least one ordered list and analyze the scheduled times of occurrence values for all as-yet-unexecuted deposit instructions until no collision instances are detected. 